我有jQuery代碼塊如下;jQuery參數與參數的區別
(function($){
//Normal code goes here
})(jQuery);
現在我想了解
- 如果這是一個自動執行的功能?如果是,爲什麼?
- 傳遞給函數的「$」和最後指定的「jQuery」有什麼區別?其中一個叫做參數而另一個參數?
- 是否有必要在最後指定「jQuery」。
謝謝。
我有jQuery代碼塊如下;jQuery參數與參數的區別
(function($){
//Normal code goes here
})(jQuery);
現在我想了解
謝謝。
是的,這是「自我執行」。內部部分是一個「函數表達式」,並且(必要的)參數然後使其立即被調用,因此是「立即調用的函數表達式」的更常用術語。
變量$
是函數的局部範圍。 jQuery插件通常以這種方式編寫,因此即使jQuery處於「無衝突」模式,也可以在內部使用常用的縮寫,因爲(全局)$
變量正在被別的東西使用。
形式上聲明中的變量稱爲「參數」,調用中的變量稱爲「參數」。我認爲在JS中會產生歧義,因爲您可以使用僞數組訪問所提供的參數。
如果這是一個自動執行功能?如果是,爲什麼?
是和否。這是一個Immediately-Invoked Function Expression,但有些人傾向於稱這些「自我執行」,即使這通常與遞歸的想法有關。
傳遞給函數的「$」和最後指定的「jQuery」之間有什麼區別?其中一個叫做參數而另一個參數?
沒錯。
是否有必要在最後指定「jQuery」。
否則從哪裏輸入$
參數?
我會添加你似乎已經錯過了一個問題:
爲什麼使用立即調用的函數表達式?
它只是別名jQuery
到$
的IIFE範圍內,因此您可以放心地單獨使用jQuery的$
在noConflict
模式或不是的。對於開發插件和使用WP非常有用。
1)自動執行,並立即執行的
你可以告訴,因爲它有在末尾括號。
你寫這樣的功能:
function myFunc() {}
或類似
var myFunc = function() {};
你調用像一個函數:
myFunc();
你把它寫爲(function() {})();
,因此觸發只要它結束。
2)的參數是一個函數需要什麼。 參數是你給一個函數。
var number_arg = 35,
string_arg = "Bob";
function myFunc (number_param, string_param) {
console.log(number_param, string_param);
}
myFunc(number_arg, string_arg); // 35 "Bob";
是PARAMS可以從不同的參數來命名,這意味着你可以在「別名」值不同的函數中。
function myFunc ($) { console.log($); }
myFunc("SUPERLONGSTRINGOFDOOMISWHATI'MPUTTINGINHERE");
myFunc(MYAPP.Module.sub_module.plug_in);
同時,在函數內部,所有這些東西都可以一起工作,只用$
。
3)「別名」是jQuery
與$
之間的關係。
「*否則從$參數將被填充的位置?*」。雖然我同意'$'和'jquery'之間的區別是參數和參數之間的區別,我會調用'$'參數和'jquery'參數。 – Bruno
@布魯諾我不好,剛起牀。你是對的 - 'jQuery'作爲形式參數輸入函數。 –