就算不賦值的話,jquery.prototype.constructor不是也等于jquery么?
3 回答

四季花海
TA貢獻1811條經驗 獲得超5個贊
在讀<<JavaScript設計模式>>
繼承部分章節時看到的譯者注:
/*
* 譯者注:定義一個構造函數時,其默認的prototype對象是一個Object 類型的實例,
* 其constructor屬性會被自動設置為該構造函數本身。
* 如果手工將其prototype 設置為另外一個對象,
* 那么新對象自然不會具有原對象的constructor值,
* 所以需要重新設置其constructor 值。
*/

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
jQuery.fn.init.prototype = jQuery.fn;
通過原型傳遞解決問題,把jQuery的原型傳遞給jQuery.prototype.init.prototype
換句話說jQuery的原型對象覆蓋了init構造器的原型對象
因為是引用傳遞所以不需要擔心這個循環引用的性能問題

九州編程
TA貢獻1785條經驗 獲得超4個贊
你說的對,但是你注意看源碼,prototype
是個對象字面量{}
。對象字面量的constructor
就不是jquery
了,所以需要重新指明。
jQuery.fn = jQuery.prototype = {}
- 3 回答
- 0 關注
- 885 瀏覽
添加回答
舉報
0/150
提交
取消