3 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
在讀<<JavaScript設(shè)計(jì)模式>>
繼承部分章節(jié)時(shí)看到的譯者注:
/*
* 譯者注:定義一個(gè)構(gòu)造函數(shù)時(shí),其默認(rèn)的prototype對(duì)象是一個(gè)Object 類型的實(shí)例,
* 其constructor屬性會(huì)被自動(dòng)設(shè)置為該構(gòu)造函數(shù)本身。
* 如果手工將其prototype 設(shè)置為另外一個(gè)對(duì)象,
* 那么新對(duì)象自然不會(huì)具有原對(duì)象的constructor值,
* 所以需要重新設(shè)置其constructor 值。
*/

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
jQuery.fn.init.prototype = jQuery.fn;
通過原型傳遞解決問題,把jQuery的原型傳遞給jQuery.prototype.init.prototype
換句話說jQuery的原型對(duì)象覆蓋了init構(gòu)造器的原型對(duì)象
因?yàn)槭且脗鬟f所以不需要擔(dān)心這個(gè)循環(huán)引用的性能問題

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
你說的對(duì),但是你注意看源碼,prototype
是個(gè)對(duì)象字面量{}
。對(duì)象字面量的constructor
就不是jquery
了,所以需要重新指明。
jQuery.fn = jQuery.prototype = {}
- 3 回答
- 0 關(guān)注
- 888 瀏覽
添加回答
舉報(bào)