【发布时间】:2020-03-14 10:29:10
【问题描述】:
var x = 1;
function fn() {
console.log(x);
}
function show(f){
var x = 2;
f();
}
show(fn);
fn() 函数应该可以访问其外部执行上下文 show(),其中 x 定义为 2。
【问题讨论】:
-
JavaScript 有词法作用域,而不是动态作用域。它考虑源代码位置,而不是调用堆栈。
-
顺便说一句,您的示例过于复杂。您可以从
show中调用fn(),无需将其作为参数f传递。
标签: javascript scope