2 回答

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
重置是什么時(shí)候開(kāi)始生效的?
答:重置是在第一次執(zhí)行Universe時(shí)生效的,不調(diào)用Universe不會(huì)引發(fā)重置.
new Universe();到底是new的舊構(gòu)造函數(shù)還是被置換后的新構(gòu)造函數(shù)呢?
答:new Universe(); 創(chuàng)建的是被置換后的新構(gòu)造函數(shù).因?yàn)樵趎ew Universe()之前重定義了
Universe=function Universe(){
return instance;
};
Universe.prototype=this; //這里把舊構(gòu)造函數(shù)里的成員都繼承過(guò)來(lái)了
已經(jīng)重寫(xiě)了舊的構(gòu)造函數(shù)。所以這里new 的是新的構(gòu)造函數(shù)

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
Universe.prototype=this;這個(gè)很迷惑,構(gòu)造函數(shù)內(nèi)部的this應(yīng)當(dāng)是指向?qū)嵗模绻A粼蛯傩詰?yīng)該是這么寫(xiě)的吧,Universe.prototype=this.__proto__求指教,感覺(jué)這么寫(xiě)很古怪!這里還有個(gè)問(wèn)題
Universe=function Universe(){
return instance;
};
應(yīng)當(dāng)寫(xiě)在instance=new Universe();之后好一點(diǎn)吧,這樣Universe.prototype=this;這句是不是可以省略不寫(xiě)。
剛才測(cè)試了一下,你應(yīng)該是這樣調(diào)用var t=Universe();那這個(gè)問(wèn)題又來(lái)了this指向的是window...
- 2 回答
- 0 關(guān)注
- 716 瀏覽
添加回答
舉報(bào)