What does (function (x,y){...})(a,b); mean in JavaScript?
What does (function (x,y){...})(a,b); mean in JavaScript?
问题
I saw this function:
(function (x, y, data, lbl, dot) {
// Function body...
})(x, y, data[i], labels[i], dot);
What is this? A function? Why place a function definition in ()
?
回答1
In javascript you can have anonymous
and self invoking
functions.
function add(a, b)
{
return a + b;
}
is same as
var add = function (a, b) {
return a + b;
}
and you call these as
add(10, 20)
You can define the function and call it immediately as
(
function(a, b)
{
return a + b;
}
)(10, 20);
The
(
function(a, b)
{
return a + b;
}
)
part defines a function, and the (10, 20)
immediately after it calls the function just defined, with 10 and 20 as arguments to it.
Since the function does not have a name, it cannot be used later in the code.
The code in your question is probably minified, and creates a function in a similar way and calls it immediately.
Immediately Invoked Function Expression
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-04-26 Customising the browse for folder dialog to show the path
2019-04-26 正则匹配IP