2021-08-12 手写new 实现

 function newFn(fn,...args) {
    let obj = Object.create(fn.prototype),
         //将obj的隐式原型指向fn的prototype
         result = fn.call(obj,...args)
         //为obj拷贝自身属性  
         if(result instanceof Object) {
                //result 在Object的原型链上,说明返回了对象或是数组
                return result
          }else {
                return obj
          }
}
//测试
function Person(name,age,sex) {
    this.name = name 
    this.age = age
    this.sex = sex
}
newFn(Person,'Ej',18,'feMale')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2.3.1 过程、政策和程序组织用于执行项目工作的流程与程序,包括(但不限于):uu 启动和规划 un 指南和标准...
    Jennifer_hu阅读 419评论 0 0
  • 突然觉得好难受。。莫名其妙。刚看了,我在他乡挺好的。大家每一个人都各自心怀鬼胎,不好好做事。吵架吵得我心里好堵。好...
    yingwinwin阅读 124评论 0 0
  • 今天是你入土为安的日子,也是你满36周岁的第一天,现实过于残忍。我不能去送你,这两天,每一刻对我来说都是煎熬...
    芳华正茂2019阅读 360评论 0 0
  • 什么都不期待的时候,反而一切都顺利了,落落大方,好好生活,好运一定与你撞满怀。
    乔蕊_53d7阅读 121评论 0 0
  • 1.用学到的孙子兵法,鬼谷子等等去看历史治国,这样就能把所有的场景都演一遍
    智囊团阅读 132评论 0 0