JavaScript 函数作用域的问题

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

转载于:https://my.oschina.net/x1z/blog/1358275

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值