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