new操作符具体干了什么?
1.创建了一个新对象
2.将新对象的原型(_proto_)指向构造函数的原型对象(prototype)
3.将构造函数中的this指向新对象
4.执行构造函数中的代码
5.返回新对象
自己封装一个new操作符实现其功能
function myNew(fn, ...arg) {
let obj = Object.create(fn.prototype);
let ret = fn.apply(obj, arg);
return ret instanceof Object ? ret : obj;
}