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