簡體   English   中英

(function (x,y){…})(a,b); 在 JavaScript 中是什么意思?

[英]What does (function (x,y){…})(a,b); mean in JavaScript?

我看到了這個功能:

(function (x, y, data, lbl, dot) {
    // Function body...
})(x, y, data[i], labels[i], dot);

這是什么? 一個函數? 為什么要在()放置函數定義?

在 javascript 中,您可以擁有anonymousself invoking函數。

function add(a, b)
{
   return a + b;
}

var add = function (a, b) {
             return a + b;
          }

你把這些稱為

add(10, 20)

您可以定義該函數並立即調用它

(
   function(a, b)
   {
      return a + b;
   }
)(10, 20);

   (
       function(a, b)
       {
          return a + b;
       }
    )

part 定義了一個函數,緊接在它調用剛剛定義的函數之后的(10, 20)以 10 和 20 作為它的參數。

由於該函數沒有名稱,所以后面的代碼中不能使用它。

您問題中的代碼可能是minified ,並以類似的方式創建一個函數並立即調用它。

function() {}匿名函數定義,(function() {})()是對該匿名函數的調用。

這是有效的,因為函數可以像數據一樣傳遞。 所以window.alert是已知的alert函數本身, window.alert()將調用該函數。

這種技術通常用於保持當前變量范圍干凈,因為函​​數有自己的變量范圍。

它是一個自匿名調用函數。 該函數被定義並立即執行。 包裝函數的括號確保它被視為函數表達式而不是函數聲明 最后一對括號調用函數並傳遞參數。

自執行匿名函數將是一個非常准確的描述。

它是一個自調用函數,它會立即執行。 自調用函數對於避免創建全局變量是有效的,jQuery 非常有效地使用了這一點。

括號內的函數是匿名函數。 我不能說為什么這樣做是這樣做的,但程序員定義了匿名函數,並立即調用它。 您可以通過簡單地用傳入的值替換其參數並刪除函數定義來做同樣的事情。

var funct = function(x,y) { }
funct(1,2)

是一樣的

(function(x,y){ })(1,2);

它定義了一個自調用匿名函數。 它被執行然后扔掉。 這是一種整理代碼(盡管這是一個不好的例子)並僅在該范圍內擁有私有變量的方法。 它也不會存儲在閉包中。

我想通了

!(function (a, b) {

在 poly up 數學網站上,它不時地停止點擊工作

暫無
暫無

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

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