js中new操作符具体做了什么,用代码解释
例:var obj = new Base();
该步一共做了三件事:即 var obj = {};
obj.__proto__ = Base.prototype;
var result=Base.call(obj);
return result instanceof Object ? result : obj;
第一行,我们创建了一个空对象obj
第二行,我们将这个空对象的__proto__成员指向了Base函数对象prototype成员对象
第三行,我们将Base函数对象的this指针替换成obj,obj便可以访问构造函数中的属性
第四行,如果返回的result是一个对象则返回result,否则返回obj