簡體   English   中英

(function($){})(jQuery)的含義(例如,在jQuery Enlightenment書中)

[英]Meaning of (function($) { })(jQuery) (e.g., in jQuery Enlightenment book)

我喜歡“ DOM Enlightenment”一書,並想閱讀jQuery的配套卷。

我已經使用過基本的jQuery,例如下面的,我理解它們。

$(document).bind(‘contextmenu’, function() {
    // do something
});

但是書中提到了類似下面的內容……而我不知道如何使用它??

(function($){
// Use $ alias worry-free of conflicts
alert('You are using jQuery ' + $().jquery );
})(jQuery)

 console = $('#console'); console.append("<p>At the start of execution, does $ === jQuery? " +( ($ === jQuery)?"yes":"no")+ "</p>"); $ = function() {}; console.append("<p>After re-assignment, does $ === jQuery? " +( ($ === jQuery)?"yes":"no")+ "</p>"); (function($) { console.append("<p>Inside our IFFE, does $ === jQuery? " +( ($ === jQuery)?"yes":"no")+ "</p>"); })(jQuery); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="console"></div> 

這是“立即調用函數表達式”-有時稱為“ IIFE”(“ iffy”); 您正在將全局對象jQuery傳遞到IIFE中,在該對象中它綁定了名稱$ -以防萬一其他正在加載的腳本出於自身目的使用$

看到有人使用相同的技術確保未將“ undefined”未重新定義為ECMAScript undefined的情況也很常見:

(function($, undefined) {
   // first argument, the global 'jQuery', bound to $
   // there is no second argument, so the ECMAScript built-in type 'undefined'
   // will be bound here to the name 'undefined'.
})(jQuery);

這稱為立即函數調用,它是本機JavaScript。

(
 // 1. define an anonymous function
 function(parameter1, parameter2) {
  // 2. this function is now an object
 }
)(argument1, argument2); // 3. invoke it with ()

在JavaScript中,可以使用匿名函數(沒有任何名稱的函數),並且可以立即調用這些函數

(function($){
    // Use $ alias worry-free of conflicts
    alert('You are using jQuery ' + $().jquery );
})(jQuery)

這是一個匿名的立即調用函數。 然后將“ $”傳遞給此函數,並在調用“ jQuery”時編寫它。 這只是為了清楚地表明“ $”表示“ jQuery”。 您也可以使用

(function(){
    // Use $ alias worry-free of conflicts
    alert('You are using jQuery ' + $().jquery );
})()

它將正常工作。

$()。jquery用於獲取我們正在使用的jquery的版本。

當我們希望在頁面加載時無條件地每次運行特定代碼時,將使用這些匿名函數。

通常,我們需要在某個位置調用函數,以便執行其中的代碼。 但是立即調用的功能有所不同。 這意味着您無需在任何地方調用此函數即可執行。 它會在其on.Adding();中執行; 最后使其立即執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM