关于 js 闭包的联想,为什么匿名函数内的变量不能直接访问呢 具体看代码

2020-12-26 20:15:06 +08:00
 sodadev

var Counter = (function() { var privateCounter = 0; function changeBy(val) { privateCounter += val; } return { increment: function() { changeBy(1); }, decrement: function() { changeBy(-1); }, value: function() { return privateCounter; } } })();

4499 次点击
所在节点    JavaScript
45 条回复
0x11901
2020-12-28 10:21:51 +08:00
说句题外话,匿名函数和闭包本身就不是同一个概念
ck65
2020-12-28 11:12:56 +08:00
@no1xsyzy 还真搜到一个差不多齐活的 visualizer https://ui.dev/javascript-visualizer/
@sodadev 右边下方点击「 Complex Closures 」有惊喜 lol
cczeng
2020-12-28 11:26:29 +08:00
作用域、执行上下文
theohateonion
2020-12-28 16:13:00 +08:00
@no1xsyzy 不在词法作用域的变量是个 ide 都会报错了把
no1xsyzy
2020-12-28 18:03:57 +08:00
@theohateonion 是直接显示范围,而不是得等有错才会报错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739259

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX