#作用域
作用域是指程序源代码中定义变量的区域。而且,作用域规定了如何查找变量,相当是确定当前执行代码对变量的访问权限。
须知,JavaScript 采用词法作用域(lexical scoping),俗称“静态作用域”。函数的作用域在函数定义的时候就决定了。与之相对,就是动态作用域——函数的作用域是在函数调用的时候才决定的。
var value = 1;
function foo() {
console.log(value);
}
function bar() {
var value = 2;
foo();
}
bar();
// 结果是: 1
// 原因是:虽然foo()在bar()当中调用,由于JS采用静态作用域,foo()的作用域在函数定义的时候,已经确定在window作用域下。
网友评论