为了账号安全,请及时绑定邮箱和手机立即绑定

javascript

javascript

潇湘沐 2018-10-19 18:15:48
var i= 50;function aa(){     console.log(i) }; (function(bb){     var i = 20;     bb(); })(aa)  为什么输出的是50????
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

如果用var声明了变量,那这个变量就是局部变量,在当前域内有效。如果不加var,那就成了全局或者是上级域的变量。在aa()里使用的i未有var声明,它就是指当前函数域的上一级,而不是指调用域的上一级。这是原型链的性质。


查看完整回答
反对 回复 2018-11-05
  • 1 回答
  • 0 关注
  • 520 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号