new操作的实现原理

new操作的实现原理

提要:new 实现原理

  1. 创建一个空对象obj
  2. 将该对象obj的__proto__指向构造函数的原型的prototype。并且在原型__proto__上设置构造函数constructor为要实例化的Fn
  3. 传入参数,并且让构造函数Fn改变指向到obj并执行
  4. 最后返回obj
function objectFactory(){
    let obj = new Object();
    let constructor = [].shift.call(arguments);
    obj.__proto = constructor.prototype;
    let ret = constructor.apply(obj,arguments);
    return typeof ret === 'object'?ret:obj;
}

  转载请注明: TomoFur new操作的实现原理

 上一篇
ES6之Class ES6之Class
ES6之Class 最近在学习React,由于在组件定义这一块有用到ES6新增的class语法,所以,重新回过头来整理一下这里的知识点。下述知识点的均来自阮一峰老师的《ES6标准入门》一书。 什么是ClassES6提供了更接近传统语言的写
2019-10-22
下一篇 
与位置相关的API辨析 与位置相关的API辨析
与位置相关的API辨析screen系列: screenLeft:浏览器左边距离屏幕的的距离 sceenTop:浏览器页面顶部距离屏幕上边的距离 inner系列 innerHeight:视口高度 innerWidth:视口宽度 offse
2019-09-02
  目录