[英]What does this javascript code mean?
var myval = (function(){})();
我不明白(function..)
含義甚至代碼。
你有什么是:
自我調用匿名函數
您首先通過圍繞函數本身進行paranthesis來創建函數表達式。 只是寫
function() {
}()
在這種情況下不起作用,因為這將定義一個函數聲明。
所以在我們有了之后,我們可以通過追加()
來調用自己
(function() {
})();
要驗證,請嘗試以下方法:
var myval = (function(){return 'self executed!'})();
alert(myval); // === 'self executed'
function(){}
- 是一個函數表達式,它定義了一個函數 (function(){})
- 像這樣包裝它確保它被視為表達式 (function(){})()
- Adding ()
調用該函數 然后將返回值分配給變量。
這通常用於允許使用變量而不會污染全局范圍。
這將創建一個匿名函數並立即調用它。 例如
(function ($) {
// Original JavaScript code.
})(jQuery);
將允許你在那里使用$
,它等於jQuery
。
這個function(){}
定義了沒有主體的匿名函數
(閉包)
。 通過將其包裝在大括號中並在末尾添加空參數列表( ()
),您將運行此閉包。 這基本上相當於:
var f = function() {};
f();
這會更容易掌握嗎?
(function(x, y, z){})(1, 2, 3)
讓我們一塊一塊地分析它:
這定義了一個匿名函數(即沒有名字的函數)
function(){}
當然,在{}
括號之間放置一些指令會更有用。
如果你這樣做了
myval = function(){<something>};
您將函數分配給myval(函數,而不是它的返回值!)
那么你可以調用myval()
,它就像調用函數本身一樣。
相反,您可以通過將()
放在最后來調用該函數。 因此:
var myval = (function(){})();
調用函數,並在myval
放置結果(這次不是函數本身)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.