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

JS 预解析问题

JS 预解析问题

慕婉清6462132 2018-10-18 14:15:46
    var z = 10; //预解析声明  var    function foo(){ // 通过预解析机制 并定义             console.log(z);    }    (function(funArg){  //自执行函数:定义和执行一起完成            console.log(funArg)            var z = 20;            funArg();    })(foo);        一直不了解为什么会输出是  10  。    请各位大神解答一下。
查看完整描述

1 回答

?
犯罪嫌疑人X

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

词法作用域啊,foo在定义的时候,已经关联到外层变量z=10,所以无论如何,当你调用foo时,都只会获取外层那个值为10z,在其他地方定义的z都不会影响到foo


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信