最近我在其他人的代码中看到了一个函数,如下所示:
function xyz(){ //function code here ;
} ();
我不理解函数定义之后的();
。
有人可以告诉我();
有什么意义吗?什么时候应该在JavaScript中使用它?
答案 0 :(得分:3)
您显示的代码无法编译。
添加括号后,这将是一个名为立即调用的函数:
(function xyz(){ //function code here ;
}) ();
大多数情况下,这些功能都是匿名的:
(function(){
var a; // a isn't visible outside
// code using a
})();
直接调用代码,因为没有函数定义,但这样一个函数的要点是定义一个作用域(它只能是全局作用域或函数),这样作用域的变量就不会泄漏。包围一个。此模式对于使代码清洁非常有用:您不在外部范围中添加任何变量,也不能删除现有的变量。
这里的函数也有一个名字,可以在里面用来递归。
(function xyz(){
var a; // a isn't visible outside
// code using a and calling xyz
})();