This question already has answers here:
Difference between (function(){})(); and function(){}(); [duplicate]
(3个答案)
Location of parenthesis for auto-executing anonymous JavaScript functions?
(4个答案)
3年前关闭。
请考虑以下两个示例:
第一:
第二:
我知道我们不能直接将
第一和第二种方法中变量
在此,用括号括起来的匿名函数是一个执行该函数并返回
在这里,complete语句是赋值
要进一步阅读,请查看以下链接:
/questions/3384504/location-of-parenthesis-for-auto-executing-anonymous-javascript-functions
http://kangax.github.io/nfe/#function-statements
(3个答案)
Location of parenthesis for auto-executing anonymous JavaScript functions?
(4个答案)
3年前关闭。
请考虑以下两个示例:
第一:
var x = (function(){ return 786; }());
第二:
var y = function(){ return 786; }();
我知道我们不能直接将
function(){ return 786; }();
用作羊膜肌自调用函数,但是现在由于将它辅助到变量x
中,因此可以使用此函数。所以,第一和第二种方法中变量
x
的行为结果是否有所不同? 最佳答案
不,不会有任何区别。
将函数包装在括号中会将其从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
http://kangax.github.io/nfe/#function-statements
09-25 16:22