亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

源碼,為什么要將jquery.prototype.constructor賦值為jquery本身?

源碼,為什么要將jquery.prototype.constructor賦值為jquery本身?

莫回無 2018-07-21 12:07:44
就算不賦值的話,jquery.prototype.constructor不是也等于jquery么?
查看完整描述

3 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

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

查看完整回答
反對 回復 2018-07-23
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

jQuery.fn.init.prototype = jQuery.fn;
通過原型傳遞解決問題,把jQuery的原型傳遞給jQuery.prototype.init.prototype

換句話說jQuery的原型對象覆蓋了init構造器的原型對象

因為是引用傳遞所以不需要擔心這個循環引用的性能問題


查看完整回答
反對 回復 2018-07-23
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

你說的對,但是你注意看源碼,prototype是個對象字面量{}。對象字面量的constructor就不是jquery了,所以需要重新指明。

jQuery.fn = jQuery.prototype = {}


查看完整回答
反對 回復 2018-07-23
  • 3 回答
  • 0 關注
  • 885 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號