new操作的实现原理
提要:new 实现原理
- 创建一个空对象obj
- 将该对象obj的
__proto__
指向构造函数的原型的prototype
。并且在原型__proto__
上设置构造函数constructor为要实例化的Fn - 传入参数,并且让构造函数Fn改变指向到obj并执行
- 最后返回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;
}