簡體   English   中英

這個javascript代碼是什么意思?

[英]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.

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