題目解析
先看代碼
var Func=function(){
};
var func=new Func ();
new共經(jīng)過了4幾個(gè)階段
1、創(chuàng)建一個(gè)空對(duì)象
var obj=new Object();
2、設(shè)置原型鏈
obj.__proto__= Func.prototype;
3、讓Func中的this指向obj,并執(zhí)行Func的函數(shù)體。
var result =Func.call(obj);
4、判斷Func的返回值類型:
如果是值類型,返回obj。如果是引用類型,就返回這個(gè)引用類型的對(duì)象。
if (typeof(result) == "object"){
func=result;
}
else{
func=obj;;
}