函数定义后的括号和分号

时间:2013-02-03 19:19:41

标签: javascript

最近我在其他人的代码中看到了一个函数,如下所示:

function xyz(){ //function code here ;
} ();

我不理解函数定义之后的();

有人可以告诉我();有什么意义吗?什么时候应该在JavaScript中使用它?

1 个答案:

答案 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
})();
相关问题