自执行函数和IIFE的区别
difference between self executing function and IIFE
我们可以通过两种方式实现立即调用功能。我对以下内容之间的区别感到困惑
var foo = function(){
return { };
}();
还有这个:
var foo = (function(){
return { };
}());
一模一样
// This one creates a function expression, then executes that function expression.
var foo = function(){
return { };
}();
// This one creates a function expression, inside of a set of parens.
// the parens hold an expression.
var foo = (function(){
return { };
}());
使用括号有两个原因:
1) 在这种情况下,它们是 READER 而不是编译器的线索,表明您有一个 IIFE。
2) 在其他情况下,当可能生成函数语句时,括号强制表达式。
// The parens here force an expression, which means it forces a function expression
// instead of a function statement.
(function () {....})
我们可以通过两种方式实现立即调用功能。我对以下内容之间的区别感到困惑
var foo = function(){
return { };
}();
还有这个:
var foo = (function(){
return { };
}());
一模一样
// This one creates a function expression, then executes that function expression.
var foo = function(){
return { };
}();
// This one creates a function expression, inside of a set of parens.
// the parens hold an expression.
var foo = (function(){
return { };
}());
使用括号有两个原因:
1) 在这种情况下,它们是 READER 而不是编译器的线索,表明您有一个 IIFE。
2) 在其他情况下,当可能生成函数语句时,括号强制表达式。
// The parens here force an expression, which means it forces a function expression
// instead of a function statement.
(function () {....})