function f1(){
var a = 1;
return f2()
}
function f2(){
return a;
}
console.log(f1());//undefinded
f1 f2 声明之后创建各自的作用域,f1 可以访问局部变量a,和全局函数f2。
f2 返回 a,但是局部找不不到a变量,向上一级全局范围查找也没有,所以返回 undefined
即使f1()在执行时调用f2(),但是作用域已经创建完成.
f2无法获取f1的a变量,返回undefined
参考:《 Object-Oriented.JavaScript(2nd,2013.7 )》