【发布时间】:2016-01-01 01:55:49
【问题描述】:
我试图通过以下测试代码巩固我对 JavaScript 中的闭包/作用域的理解:
var globalM = 1;
function firstFx() {
function secondFx () {
console.log(globalM + 1);
}
secondFx();
}
firstFx();
我知道 firstFx 可以访问 globalM,因为它在它的范围内。但是我的内部函数 secondFx 怎么也可以访问 globalM 变量呢?它达到了2级,我认为这是不可能的?然而 2 的结果被记录到控制台。
【问题讨论】:
-
因为它是全球性的。这意味着所有函数/范围都可以访问它。
-
达到2级没有错。
-
谢谢你们,阅读了很多关于闭包/词法作用域的内容,以至于我完全把自己与它的基础知识搞糊涂了。
标签: javascript scope closures