javascript中的面向对象编程笔记

创建object对象

在javascript中,创建object的方法有几种,可以直接用“{}”创建

 var obj = {
         attr:val;
 }

也可以利用构造函数创建
构造函数通常使用大写字母开头,一边跟其它普通函数区分开来。

//创建一个构造函数
var Obj = function(){
//用this来指向被此构造函数创建出来的对象
        this.attr = val;
}
//用new关键字调用构造函数,创建出一个Obj的实例
var obj = new Obj();
console.log(obj.attr)//val;
//可以随时添加其它属性
obj.attr2=val2;
console.log(obj.attr2)//val2;

也可以往构造函数里面传入参数,方便我们new出特殊对象

var Car =function(wheel,engine,seat){
        this.wheels = wheel;
        this.engines = engine;
        this.seats = seat;
}

var myCar = new Car(4,1,4);
console.log(myCar.wheels);//4
console.log(myCar.engines);//1

对象除了拥有属性之后,还可以拥有方法,比如

var Superman = function(name){
     this.name = name;
     this.action = function(){
        console.log(this.name+" can flying");
     };
}

var xiaoming = new Superman('xiaoming');
xiaoming.action();//"xiaoming can fiying"

也可以利用prototype向已有“原型对象中”添加属性或者方法

var Superman = function(name){
     this.name = name;
     this.action = function(){
        console.log(this.name+" can flying");
     };
var logan = Superman("logan");
Superman.prototype.fight=function(){
    console.log(this.name+" can fighting")
}
logan.fight();//"logan can fighting"

数组对象的一些方法

map方法
伪代码 Array.map(fn(num))

map方法会迭代数组中的每个元素,并根据回调函数来处理每个元素,最后返回一个全新的数组,此方法只在原数组的副本上做修改,并不会改变原数组

var arr = [0,1,2,3,4];
var newArr = arr.map(function(num){
         return num*2;
});
console.log(newArr);
[0,2,4,6,8]

reduce方法
伪代码 Array.reduce(fn(P,C)[,Index])

reduce方法可以通过传入的回调函数,来对数组中的前一项和当前项进行操作,然后返回一个值

var arr = [0,1,2,3,4];
var newArr = arr.reduce(function(p,c){
        return p+c;
});
console.log(newArr)
10

filter方法
伪代码 Array.filter(fn())

filter方法,可以通过传入的函数,来筛选出那些bool值为true的数组成员

var arr = [0,1,2,3,4]
var newArr = arr.filter(function(num){
        return num<3;
});
console.log(newarr);
[0,1,2]

sort方法
伪代码 Array.sort([fn]);

当sort中的参数缺省的时候,Array中的数值将会被转化成字符串并按照unicode编码的大小进行排序,值得注意的是,sort会改变原数组。

var arr = [0,1,2,3,12,23]
arr.sort();
console.log(arr);
[0,1,12,2,23,3]

当sort中传入比较函数的时候

var arr = [0,1,2,3,12,23];
arr.sort(function(x,y){
        return x-y;//数值从小到大排列
});
console.log(arr);
[0,1,2,3,4,12,23]
当xy的时候,就会返回一个整数,代表y要排在x的左边;
如果x==y的时候,就会原封不动;
故 return x-y 数组中的成员就会从小到大排列
反之 如果 return y-x 数组中的数值成员就会从大到小排列

reverse方法
伪代码 Array.reverse();

将数组的副本中所有的元素反转,即排序调转

var arr = [0,1,2,3,4]
var newArr = arr.reverse();
console.log(newArr);
[4,3,2,1,0]

concat方法
伪代码 Array.concat(otherArray)

将参数中数组拼接到数组之中

var arr = [0,1,2,3,4];
var otherArr = [5,6,7,8];
var newArr = arr.concat(otherArr);
console.log(newArr);
[0,1,2,3,4,5,6,7,8]

join方法
伪代码 Array.join('s')

利用join方法你可以将数组中的成员连接成字符串,这个连接符就是你传入join中的参数

var arr =["Today","is","beautiful","day"]
var str = arr.join(" ");//用空白格连接数组
console.log(str);
"Today is beautiful day"

split方法
伪代码 String.split("s")

你可以使用 split 方法按指定分隔符将字符串分割为数组。

var str = "You can split String into an Array";
var arr = str.split(" ")//用空白格分隔字符串
console.log(arr);
["You","can","split","String","into","an","Array"]

你可能感兴趣的:(javascript中的面向对象编程笔记)