我刚刚第一次遇到这种变量声明语法。
var myVar = (function() {
return 1;
})();
我的两个主要问题是..
它叫什么?为什么它是合法的?
如果以前有人问过这个问题,请原谅我,我尝试四处搜索,但我不知道这个符号叫什么,所以我找不到任何东西。
另外,我要补充一下,这两组括号的作用是什么?第一个包含函数,第二个为空。
最佳答案
自执行函数通常用于封装上下文并避免名称串通。您在 (function(){..})() 内定义的任何变量都不是全局的。
以下代码:
var same_name = 1;
var myVar = (function() {
var same_name = 2;
console.log(same_name);
})();
console.log(same_name);
产生以下输出:
1
2
通过使用此语法,您可以避免与 javascript 代码中其他地方声明的全局变量发生冲突。
关于Javascript变量声明,为什么这是合法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23718743/