我看到了这个功能:(function (x, y, data, lbl, dot) { // Function body...})(x, y, data[i], labels[i], dot);这是什么?有功能吗?为什么要放置函数定义()?
3 回答

白衣染霜花
TA贡献1796条经验 获得超10个赞
在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作为参数。
由于该函数没有名称,因此无法在以后的代码中使用。
您问题中的代码可能被缩小了,并以类似的方式创建了一个函数并立即调用它。

潇湘沐
TA贡献1816条经验 获得超6个赞
function() {}是匿名函数的定义,并且(function() {})()是该匿名函数的调用。
这是可行的,因为函数可以像数据一样传递。所以window.alert是已知alert函数本身window.alert()会调用该函数。
由于函数具有自己的变量范围,因此经常使用此技术来保持当前变量范围的整洁。
添加回答
举报
0/150
提交
取消