考虑以下两个例子:
首先:
var x = (function(){ return 786; }());
第二
var y = function(){ return 786; }();
我知道我们不能直接使用function(){ return 786; }();
作为anoomymus自我调用函数,但现在因为我将它指定给变量x
我可以使用此函数。所以,
x
的行为结果有何不同?答案 0 :(得分:2)
没有。没有任何区别。
将括号中的函数包装为从function declaration
转换为expression
,并且可以自行运行有效的expression
。
var x = (function(){ return 786; }());
这里,括在括号中的匿名函数是一个表达式,它执行函数并返回786
,并将其分配给var x
。由于匿名函数是一个有效的表达式,它也可以单独运行。
var y = function(){ return 786; }();
此处,complete语句是赋值expression
,因此,它将被执行并将值786
存储到var y
。
如需进一步阅读,请查看以下链接:
/questions/3384504/location-of-parenthesis-for-auto-executing-anonymous-javascript-functions