首页 > 其他分享 >3.可以描述new一个对象的详细过程,手动实现一个new操作符

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

时间:2023-03-04 11:35:15浏览次数:33  
标签:function obj 手动 操作符 returnVal new fn

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
}

 

标签:function,obj,手动,操作符,returnVal,new,fn
From: https://www.cnblogs.com/alwaysrun/p/17177941.html

相关文章