JavaScript 闭包与匿名函数
在 JavaScript 中,当内部函数可以访问外部作用域的变量时,即使在外部函数已完成执行。 JavaScript 中的许多函数都被视为闭包,但理论上只有特定子集特别令人感兴趣。
案例 1:朋友的代码
<code class="js">(function f() { var i2 = i; setTimeout(function g() { console.log(i2); }, 1000); })();</code>
情况 2:您的代码
<code class="js">setTimeout((function f(i2) { return function g() { console.log(i2); }; })(i), 1000);</code>
结论
因此,在提供的两个解决方案中,内部函数 g 是一个闭包,但不是外部的。这表明虽然它们达到了相同的结果,但它们是通过不同的机制实现的。
以上是JavaScript 中的内部函数总是闭包吗?的详细内容。更多信息请关注PHP中文网其他相关文章!