如何正确地自执行闭包
How to properly self-execute a closure
我正在研究闭包和全局作用域,我对何时使用}())和}()()感到困惑。似乎我很幸运地遇到了一个情况,无论我使用哪个都无关紧要。
(function() {
var myFunction = (function() {
var i=100;
return function() {
return i++;
}
}());
var X = myFunction();
console.log(X);
X = myFunction();
console.log(X);
})();
JS中的表达式就是这样工作的。
由于+
, -
, (
, ~
…指定表达式的开头。
!function(){}()
~function(){}()
+function(){}()
-function(){}()
(function(){})()
(function(){}())
(function () { return 1; });
不计算函数。("append" + " us")
对字符串求值
所以,在这个例子中这并不重要,因为:
var myFunction = (function() {
var i=100;
return function() {
return i++;
}
}());
求值为(function() { return i++; }
,它只返回匿名函数。
:
var myFunction = (function() {
var i=100;
return function() {
return i++;
}
})();
对括号后的myFunction求值。和. .只返回匿名函数。哇。
相关文章:
- 执行上下文和闭包
- 如何在匿名自执行函数中为闭包添加属性
- 如何对现有闭包执行操作
- 使用this/self-reference执行javascript闭包会导致内存泄漏
- 在Javascript中执行简单闭包时出现运行时错误
- If语句没有使用JavaScript闭包执行
- 自动执行函数与对象中的闭包
- 为什么我有两个不同的结果,当我执行这个javascript闭包代码
- 回调函数、闭包和执行上下文
- 如何正确地自执行闭包
- Javascript闭包和自执行的匿名函数
- JS闭包和执行上下文的创建
- 在JavaScript中调用闭包时,是在输入闭包代码时创建的新执行上下文
- 为什么我的匿名闭包只执行一次
- 不完整的可执行自加载闭包
- Javascript闭包和执行上下文-评估代码的问题
- 内部闭包函数语句未执行
- 自执行匿名函数和闭包
- 停止从外部闭包执行函数
- 如何在循环中创建闭包并将其存储在变量中以供以后执行