(函数(x,y){…})(a,b)是做什么的;在JavaScript中意味着什么?

我看到了这个功能:


(function (x, y, data, lbl, dot) {

    // Function body...

})(x, y, data[i], labels[i], dot);

这是什么?有功能吗?为什么要放置函数定义()?


拉莫斯之舞
浏览 603回答 3
3回答

白衣染霜花

在javascript中,您可以拥有anonymous和self 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作为参数。由于该函数没有名称,因此无法在以后的代码中使用。您问题中的代码可能被缩小了,并以类似的方式创建了一个函数并立即调用它。

潇湘沐

function() {}是匿名函数的定义,并且(function() {})()是该匿名函数的调用。这是可行的,因为函数可以像数据一样传递。所以window.alert是已知alert函数本身window.alert()会调用该函数。由于函数具有自己的变量范围,因此经常使用此技术来保持当前变量范围的整洁。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript