实现new操作符

做~自己de王妃 提交于 2020-03-02 10:52:20

实现new操作符的过程:

1.创建一个对象

2.通过new创建的每个对象的_proto_都链接到该函数的prototype对象上

3.如果函数没有返回对象类型Object(包括Function,Array,Date等),那么new表达式中的函数将返回该对象的引用

function(fn){
    
   const res = {}
   if(fn.prototype!==null){
      res.__proto__ = fn.prototype
    }
   let last = fn.apply(res,Array.prototype.slice.call(arguments,1))
   if((typeOf last === 'object'||typeOf last === 'function')&& last!==null){
     return last
   }
   return res
    
    
}     

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!