当我们在new一个构造函数时具体做了什么
1、首先是创造了一个空对象
2、然后在这个空对象上通过__proto__属性绑定构造函数的原型,实现继承关系
3、然后改变this指向执行构造函数,并传入参数
4、return出创造的这个对象
代码实现:
function mynew(fn,...args){
const obj = {};
obj.__proto__=fn.prototype;
fn.call(obj,...args);
return obj
}