Skip to content

手写new

January 22, 2023 | 02:00 PM

手写new

new的作用是将构造函数生成它的实例

fn为一个构造函数,...args由于剩余参数不固定,所以用剩余参数的方法,将其整合成一个数组

function myNew(fn,...args){
    //1.定义一个空的对象
    const obj={}
    //2.隐式原型指向构造函数的显示原型
    obj._proto_=fn.prototype
    //3.执行构造函数,this指向空对象
    fn.apply(obj,args)
    //4.返回对象
    return obj
}