()
用于 JavaScript 中的几件事。
方法调用
当用作运算符时,它将用于调用函数,可选地带有参数列表:
var a = function() { console.log(23); }
a() // => 23
当人们使用直接调用的匿名函数来创建闭包时,您可以看到这一点。就像你的例子一样:
(function(){})();
虽然我猜大多数人会这样写:
(function(){}());
表示函数是分组的,表达式是整体的一部分。这导致了另一个用例:
对表达式进行分组
()
可用于对表达式进行分组。像这样:
(1,2,3);
空()
将是语法错误。但这会起作用:
a = (1,2,3);
console.log(a); // => 3
在您的示例中就是这种情况:
var g = (function(){});
g
已被分配一个匿名函数作为它的值。这也可以:
var g = function() {};
一样的效果。
分组没有直接价值,但是当您考虑为闭包创建匿名函数时,它非常重要:
function() {
// your code
}(); // => Syntax Error
但这会起作用:
(function() {
return 12;
}());
因为表达式是分组的。