最近我在别人的代码中看到了一个函数,如下所示:
function xyz(){ //function code here ;
} ();
我不明白();
函数定义之后的内容。
有人可以告诉我();
在 JavaScript 中使用它的意义和时间是什么吗?
最近我在别人的代码中看到了一个函数,如下所示:
function xyz(){ //function code here ;
} ();
我不明白();
函数定义之后的内容。
有人可以告诉我();
在 JavaScript 中使用它的意义和时间是什么吗?
您显示的代码无法编译。
添加括号后,这将是一个命名的立即调用函数:
(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
})();