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;
}