美文网首页
javascript中的面向对象编程笔记

javascript中的面向对象编程笔记

作者: HugeWilliam | 来源:发表于2018-01-23 17:00 被阅读0次

    创建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]
    当x<y的时候,就会返回一个负值,代表x要排在y的左边;
    如果x>y的时候,就会返回一个整数,代表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中的面向对象编程笔记

          本文链接:https://www.haomeiwen.com/subject/ebbsaxtx.html