汪汪一只貓
2019-11-05 11:10:24
我正在看ribs.js截屏視頻中出色的peepcode演示代碼。在其中,主干代碼全部封裝在傳遞給jQuery對(duì)象的匿名函數(shù)中:(function($) { // Backbone code in here})(jQuery);在我自己的主干代碼中,我將所有代碼包裝在jQuery DOM'ready'事件中:$(function(){ // Backbone code in here});第一種方法的目的/優(yōu)勢(shì)是什么?這樣做會(huì)創(chuàng)建一個(gè)匿名函數(shù),然后立即將jQuery對(duì)象作為函數(shù)參數(shù)傳遞來(lái)執(zhí)行該匿名函數(shù),從而有效地確保$是jQuery對(duì)象。這是唯一的觀點(diǎn)-保證jQuery綁定到“ $”還是有其他原因呢?
3 回答

MYYA
TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
作為次要說(shuō)明,將$作為參數(shù)傳遞給匿名函數(shù)會(huì)使$在該函數(shù)中成為本地函數(shù),如果$函數(shù)被調(diào)用很多,則對(duì)性能的影響很小。這是因?yàn)閖avascript首先在本地范圍內(nèi)搜索變量,然后一直向下遍歷到窗口范圍(通常位于$)。

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
同時(shí)使用。
自我傳遞函數(shù),您可以在其中傳遞jQuery來(lái)防止庫(kù)沖突,并確保jQuery與$一樣可用。
和.ready()快捷方式方法是僅在DOM已加載后才需要運(yùn)行JavaScript的方法:
(function($) {
$(function(){
//add code here that needs to wait for page to be loaded
});
//and rest of code here
})(jQuery);
添加回答
舉報(bào)
0/150
提交
取消