可能重复:
What do parentheses surrounding a JavaScript object/function/class declaration mean?
What does this javascript syntax mean?
What does this “(function(){});”, a function inside brackets, mean in javascript?
在下面的代码中,正在执行匿名函数。
var a= 1;
var b =2;
(function() {
var b = 3;
a += b;
})();
document.write(a + " "+ b);
1)在函数定义周围添加括号是做什么的?
2)在右括号之后放置()
会是什么?
答案 0 :(得分:2)
将()
放在function() { ... }
周围使其成为表达式与语句的对比。因为它是一个产生函数值的表达式,所以()
最后会调用生成的函数。
考虑替代方案
function () {
var b = 3;
a += b;
}();
这会产生语法错误,因为()
实际上是在尝试调用语句。
(function () {
var b = 3;
a += b;
});
这将生成一个永远不会被调用的function
对象。
答案 1 :(得分:0)
嗯,你在第一行说出来,代码创建一个匿名函数然后执行它没有参数(尾部括号)
答案 2 :(得分:0)
如果你想创建一个范围(或定义局部变量),它会自动执行它,因为javascript没有块范围,所以需要一个函数。
答案 3 :(得分:0)
好的,你的第一个问题答案就是覆盖了hole函数。没有它将执行函数,第二个问题是一个没有参数的匿名函数。