我對語法的意義有點麻煩「(函數($)」和「(jQuery的)」,在下面的代碼。jQuery插件的語法太奇怪
(function($){
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};})(jQuery);
能否請您解釋一下什麼意思在上面的代碼其中?
如果我想改變短語「(jQuery的)」到「(ABC)」,那麼該怎麼辦呢,如何使用它?
感謝您抽出寶貴時間來回答我的問題。
我對語法的意義有點麻煩「(函數($)」和「(jQuery的)」,在下面的代碼。jQuery插件的語法太奇怪
(function($){
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};})(jQuery);
能否請您解釋一下什麼意思在上面的代碼其中?
如果我想改變短語「(jQuery的)」到「(ABC)」,那麼該怎麼辦呢,如何使用它?
感謝您抽出寶貴時間來回答我的問題。
function($)
表示該函數採用單個參數,變量$
(與任何參數一樣)可在函數內部訪問。
$.fn.myPlugin
正在使用該參數。
(function...)(jQuery)
正在創建一個自動調用的功能塊,傳遞jQuery
作爲參數。
這樣做的關鍵是確保$
alias通常用於表示jQuery實際上是傳遞一個jQuery對象,而不是任何其他名爲$
的變量。
沒有很好的理由將jQuery
更改爲abc
,除非在變量abc
中有jQuery
實例。
這是一個立即調用的函數表達式。它允許您1)以任何變量限制在其範圍內而不是污染窗口環境的方式附上代碼,以及2)傳入您可以在代碼中使用的參數。
在這種情況下Jquery
傳遞作爲$
所以你可以用$
安全的,您可以使用$
沒有它與可能使用它作爲一個別名任何其他庫衝突的知識。
假設abc
存在,您當然可以通過abc
以及jQuery
。
(function($, abc) {
$.fn.myPlugin = function() {
console.log(abc);
}
}(jQuery, abc));
如果將'jQuery'更改爲'abc',那麼閉包內的'$'將是'abc'而不是'jQuery'的值。如果'abc'未定義,$ .fn.myPlugin會給出錯誤。 – Halcyon
爲什麼你想改變它爲abc? –
你的問題已經回答[這裏](http://stackoverflow.com/questions/4484289/id-like-to-understand-the-jquery-plugin-syntax)。 – bertl