3.可以描述new一个对象的详细过程,手动实现一个new操作符

1.new关键字的执行过程

  • 1、创建一个空对象

  • 2、改变this指向

  • 3、向其中添加属性

  • 4、返回这个对象

2.手动模拟new的实现

new关键字的执行过程
如果一个类返回值是一个引用类型那么就返回这个引用类型值
function mockNew(fn){
    let obj = {}
    let newValue = fn.call(obj)
     if((typeof returnVal === 'object' && returnVal !== null) || typeof returnVal === 'function'){
            return returnVal;
    }
    obj.__proto__ = fn.prototype
    return obj
}

 

posted @ 2023-03-04 11:21  不想做混子的奋斗远  阅读(22)  评论(0)    收藏  举报