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

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

為何很多jquery插件都要這么寫

為何很多jquery插件都要這么寫

梵蒂岡之花 2019-04-14 09:52:21
如題,我發現很多插件都是如下風格的代碼(function($){$.fn.xxxx=....})(jQuery);為什么不直接$.fn.xxxx=....
查看完整描述

2 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

主要原因是你不能保證$就是jQuery對象,因為$有可能被其他庫占用,或被重新定義,或者執行了jQuery.noConfict()等。但是jQuery這個對象肯定是存在的。所以保險起見,要加一個匿名的閉包將jQuery對象作為參數傳進去,以確保$===jQuery。
不光是寫插件的時候要這么做,在寫其他代碼時,也很有必要這樣。
                            
查看完整回答
反對 回復 2019-04-14
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

(function($){
$.fn.xxxx=....
})(jQuery);
這叫做匿名函數自調用,這樣做的好處是避免將變量暴露到全局變量中去。前面說到沖突的問題,在實際的項目中,大部分主要還是jq為主,應該很少碰到jq和其他框架共存的項目,除了prototype也會用到$,其他的框架沒使用這個變量。
                            
查看完整回答
反對 回復 2019-04-14
  • 2 回答
  • 0 關注
  • 392 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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