|
|
@ -29,5 +29,7 @@ JavaScript 使用对象模拟函数的的设计代替了一般编程语言中的 |
|
|
|
3. 如果 \[\[call\]\] 的返回值是对象则返回该对象,否则返回第一步创建的对象 |
|
|
|
3. 如果 \[\[call\]\] 的返回值是对象则返回该对象,否则返回第一步创建的对象 |
|
|
|
|
|
|
|
|
|
|
|
1. 创建一个空的简单JavaScript对象 (即 **{}**,以 Object.prototype 为原型) |
|
|
|
1. 创建一个空的简单JavaScript对象 (即 **{}**,以 Object.prototype 为原型) |
|
|
|
|
|
|
|
2. 为步骤1新创建的对象添加属性 **\_\_proto\_\_**,将该属性链接至构造函数的原型对象 |
|
|
|
|
|
|
|
3. 以新对象为 this,执行函数的 \[\[call\]\] |
|
|
|
|
|
|
|
|
|
|
|
以上似乎也是出现闭包的原因。 |
|
|
|
以上似乎也是出现闭包的原因。 |