手写new (简易版)

function mynew(Func, ...args) {
    // 1.创建一个新对象
    const obj = {}
    // 2.新对象原型指向构造函数原型对象
    obj.__proto__ = Func.prototype
    // 3.将构建函数的this指向新对象,执行构造函数中的代码
    let result = Func.apply(obj, args)
    // 4.根据返回值判断(没有显式的返回一个非空对象,则将这个对象返回)
    return result instanceof Object ? result : obj
}

new操作符的操作显而易见!
全部评论

相关推荐

09-13 17:25
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务