合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
当你使用new的时候,会: 1.创建一个新的空对象; 2.将this绑定到该对象; 3.添加一个名为__proto__的新属性,并且指向构造函数的原型(prototype); 4.返回该this对象。 如果你没有特别理解,那么我们接下来用例子来详细解释。首先定义一个构造函数Student,该函数接收两个参数name和age。 ~~~ function Student(name, age){ this.name = name; this.age = age; } ~~~ 现在我们使用new来创建一个新的对象: ~~~ var first = new Student('John', 26); ~~~ 到底发生了什么呢? 1.一个新的对象创建,我们叫它obj; 2.this绑定到obj,任何对this的引用就是对obj的引用; 3.__proto__属性被添加到obj对象。obj.__proto__会指向Student.prototype; 4.该obj对象被赋值给first变量。 我们可以通过打印测试: ~~~ console.log(first.name); // John console.log(first.age); // 26 ~~~