This commit is contained in:
qianguyihao 2018-03-12 10:06:15 +08:00
parent b1cc5edb32
commit 45dc5ff722
5 changed files with 6 additions and 6 deletions

View File

@ -157,14 +157,14 @@ Object是原型链的顶端。
## new 运算符
new 运算符的原理如下
当new Foo()时发生了什么
1创建一个**新的空对象**,此空对象继承自`Foo.prototype`,也就是继承自构造函数的原型。
2构造函数被执行。执行的时候传入相应的参数如果没有参数就不用传同时 this 指向这个新实例。
3如果构造函数返回的是“对象”那么这个对象会取代整个 new 出来的结果。如果构造函数没有创建对象,那么 new 出来的结果为步骤1创建的对象。
1创建一个**新的空对象实例**。
2将此空对象的隐式原型指向其构造函数的显示原型。
3执行构造函数传入相应的参数如果没有参数就不用传同时 this 指向这个新实例。
4如果返回值是一个新对象那么直接返回该对象如果无返回值或者返回一个非对象值那么就将步骤1创建的对象返回。
参考《JS高程》6.2.2
## 类继承和原型继承的区别