样本一
new 共经过了 4 几个阶段
- 1、创建一个空对象
- 2、设置原型链
- 3、让 Func 中的 this 指向 obj,并执行 Func 的函数体
- 4、判断 Func 的返回值类型:
样本二
function Test(){} const test = new Test()
1.创建一个新对象:
const obj = {}
2.设置新对象的 constructor 属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的 prototype 对象
obj.constructor = Test obj.__proto__ = Test.prototype
3.使用新对象调用函数,函数中的 this 被指向新实例对象
Test.call(obj)
4.将初始化完毕的新对象地址,保存到等号左边的变量中