美文网首页
构造函数与new

构造函数与new

作者: _claus | 来源:发表于2018-03-18 16:32 被阅读0次

    构造函数

    构造函数就是一个普通的函数,但是具有着自己的特征和用法。

    function People(name, age){
      this.name = name
      this.age = age
    }  
    
    var man1 = new People('张三',14)  
    var man2 = new People('李四',15)
    man1.name // ‘张三’
    man2.name // ‘李四’
    
    

    上面代码中,People就是一个构造函数,为了加以区分,通常构造函数名字第一个字母大写。
    构造函数的特点:

    • 函数体内使用this关键字,代表了所要生成的对象实例。
    • 生成对象的时候,必须使用new命令。

    new

    new 命令的作用就是执行构造函数,生成一个实例对象。

    function People(name, age){
      this.name = name
      this.age = age
    }
    
    var o = new People('张三',20)
    o.name // ‘张三’
    o.age // ‘20’
    

    new命令原理

    • 创建一个空对象,作为将要返回的对象实例。
    • 将这个空对象的原型指向构造函数的prototype属性。
    • 将这个空对象赋值给函数内部的this关键字。
    • 执行构造函数内部代码。

    如果构造函数内部有return语句,return语句后面如果是一个对象,new命令会返回return后面的指定对象;如果不是对象,那么始终返回this对象。

    new命令始终返回一个对象,要么是return指定对象,要么就是实例对象。

    相关文章

      网友评论

          本文标题:构造函数与new

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