前面的文章有提到“new 构造函数()”是符合标准规范创建对象的方式,也是其他创建对象方式的基础。通过飞哥的那张图也知道对象实例与构造函数的关系,为了能够更深入的梳理技术知识体系,我感觉有必要将这种创建方式分为两部分来梳理:1、new关键字;2、构造函数();今天这篇文章先来探索一下关键字new的实现原理!
myNew(Fn,arg){
let obj = Object.create(Fn.prototype);
let result = Fn.apply(obj,arg);
return result instanceof Object ? result : obj ;
}
就是这么5行代码,是不是有点不敢相信,之前感觉很神秘的new竟然这么简单;其实很多看似很神秘的东西,在你搞懂之后,他大爷的,其实也就那么回事!