自动执行函数和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)在这种情况下,它们是读者的线索,而不是编译器的线索,你有一个IIFE。
2) 在其他上下文中,当可能生成函数语句时,括号会强制表达式。
// The parens here force an expression, which means it forces a function expression
// instead of a function statement.
(function () {....})
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- JavaScript中的函数和对象之间没有区别吗?
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- javascript函数的:和=之间的区别
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 函数中this和var之间的区别
- “util.inherits”和在NodeJS中扩展原型之间的区别
- Math.min()和Math.max()之间有什么区别?在Javascript中
- webpack开发模式和生产构建模式之间有什么区别
- servlet和代理servlet之间的区别
- Javascript 类型未定义和 void 之间的区别
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 关于承诺/A+规范,术语“当时可”和“承诺”之间有什么区别
- 布局引擎和javascript引擎之间的区别
- 什么's extjs中的mon()和on()之间的区别
- type=text/javascript和language=javascript之间的区别
- 函数()和新函数()之间的区别
- JavaScript中let和var之间的区别
- 蓝鸟的done()和spread()之间的区别
- Node.js HTTP/NET——连接和请求之间的区别