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 )》
本文通过两个函数f1和f2的示例解释了在JavaScript中如何创建作用域以及函数如何访问局部和全局变量。当f1调用f2时,尽管f2试图访问f1内的局部变量a,但由于作用域限制,导致返回undefined。
1536

被折叠的 条评论
为什么被折叠?



