js的new操作符做了哪些事情
- 首先会创建一个空对象
- 然后会让这个空对象的__proro__指针指向此构造器的原型对象
- 执行构造函数,this绑定在新对象上
- 确保返回一个对象
const _new = function(constructor, ...args) {
// 补全代码
//当new一个构造函数后会执行四件事
//1.首先会创建一个空对象
let obj = {}
//2.然后会让这个空对象的__proro__指针指向此构造器的原型对象
obj.__proto__ = constructor.prototype
//3.执行构造函数,this绑定在新对象上
let res = constructor.bind(obj, args)
//4. 确保返回一个对象
return res instanceof Object ? res : obj
}