执行过程
核心:原型链、this、返回
- 创建一个空对象obj
- 建立构造函数与对象间的关系 == 原型链
- 将构造函数中的this绑定到新建的obj上 = 明确this指向
- 将构造函数返回类型作判断,如果原始值被忽略,如果返回对象,需要正常处理
手写new
function mynew(constructor, ...args) {//创建一个对象const obj = {}//对象的原型与构造函数的prototype相关联obj.__proto__ = constructor.prototype//this指向新创建的thislet result = constructor.apply(obj, args)//返回新创建的对象return result instanceof Object ? result : obj
}