美文网首页前端开发那些事儿
对象的创建方式及new关键字

对象的创建方式及new关键字

作者: 深度剖析JavaScript | 来源:发表于2020-08-04 21:35 被阅读0次

    对象的创建方式

    1. 对象字面量
    var obj={
     //code...
    }
    
    1. 构造函数
    • 系统自带的构造函数;
      比如new Object()、 new Array()、 new Number()、 new Boolean()、 new String()、 new Date()...
    • 自定义的构造函数

    构造函数与普通函数一模一样,为了好维护、好阅读,构造函数首字母大写。
    有了构造函数,通过new关键字即可生产出对象

    function Student(name,age){
      this.name = name;
      this.age = age;
    }
    var alice = new("Alice",18);
    

    构造函数内部原理(前提加了new关键字)
    (1)隐式创建this对象;在函数体最前面隐式的加上this = {}
    (2)执行this.xxx = xxx;
    (3)隐式的返回this对象。
    备注:其实隐式创建的this对象并不是空对象,它里面上来就有一个属性__proto__值为Xxx.prototype,即:

    {
      __proto__ : Student.prototype;
    }
    

    意思是,对象生成的时候,会存在一个属性__proto__指向自己的原型。当对象找对应的属性的值时,先看看自己有没有,没有的话就去沿着__proto__指向的原型中查找。所以alice.__proto__=== Student.prototype是绝对的。

    其实还存在第三种创建对象的方式,通过Object.creat(原型),传入的可以是一个对象也可以是null,传入null时,创建的对象没有原型。

    var obj = Object.creat(null);
    

    相关文章

      网友评论

        本文标题:对象的创建方式及new关键字

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