Open Adamwu1992 opened 6 years ago
作用域规定了执行代码时如果查找变量,也就是说确定了当前执行代码对变量的访问权限。
也可以叫做静态作用域,就是在变量声明的时候确定作用域。
var max = 10; function foo() { console.log(max); } function bar() { var max = 100; foo(); } bar(); // 输出10;
以上代码,foo里的max在定义时确定,当前作用域里找不到max变量,就到上一级作用域中找,结果找到了max为10,不管foo放在什么位置执行,它的作用域都不会再变化,这就是词法作用域。
foo
max
词法作用域(Lexical scoping)
也可以叫做静态作用域,就是在变量声明的时候确定作用域。
以上代码,
foo
里的max
在定义时确定,当前作用域里找不到max
变量,就到上一级作用域中找,结果找到了max
为10,不管foo
放在什么位置执行,它的作用域都不会再变化,这就是词法作用域。