var fn = null;
function foo() {
var a = 2;
function innnerFoo() {
console.log(c); // 在这里,试图访问函数bar中的c变量,会抛出错误 c is not defined
console.log(a);
}
fn = innnerFoo; // 将 innnerFoo的引用,赋值给全局变量中的fn
}
function bar() {
var c = 100;
fn(); // 此处的保留的innerFoo的引用
}
foo();
bar();
function foo() {
console.log(a); //2
}
function bar() {
var a = 3;
foo()
}
var a = 2;
bar();
//词法作用域让foo()中的RHS引用到了全局作用yu
函数优先