实现new操作符

Posted yourname

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现new操作符相关的知识,希望对你有一定的参考价值。

实现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
    
    
}     

 

以上是关于实现new操作符的主要内容,如果未能解决你的问题,请参考以下文章

RuntimeError: An attempt has been made to start a new process before the current process has...(代码片段

这些 C++ 代码片段有啥作用?

无敌秘籍之 — JavaScript手写代码

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程