function Func(){ }; var newFunc=new Func ();
new共通过了4个阶段函数
1.建立一个空对象this
var obj=new Object();
2.设置原型链spa
把 obj 的__proto__ 指向构造函数Func的原型对象 prototype,此时便创建了 obj 对象的原型链:prototype
obj->Func.prototype->Object.prototype->nullcode
3.让Func中的this指向obj,并执行Func的函数体。对象
var result =Func.call(obj);
四、判断Func的返回值类型:blog
若是无返回值 或者 返回一个非对象值,则将 obj 做为新对象返回;不然会将 result 做为新对象返回。原型链
if (typeof(result) == "object"){ func=result; } else{ func=obj;; }