js手写new方法

29 阅读1分钟

当我们在new一个构造函数时具体做了什么

1、首先是创造了一个空对象

2、然后在这个空对象上通过__proto__属性绑定构造函数的原型,实现继承关系

3、然后改变this指向执行构造函数,并传入参数

4、return出创造的这个对象

代码实现:

function mynew(fn,...args){
    const obj = {};
    obj.__proto__=fn.prototype;
    fn.call(obj,...args);
    return obj
}