javascript - 作用域链的问题?
伊谢尔伦
伊谢尔伦 2017-04-11 10:58:23
[JavaScript讨论组]
 var name = 'laruence';
 function echo() {
      alert(name);
 }

 function env() {
      var name = 'eve';
      echo();
 }

 env(); 
 
 答案是多少
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
迷茫

echo函数自己的作用域没有定义name,所以它调用的上级全局name= 'laruence';
如果你在env函数里再写一个alert(name),那么就是name='eve',因为它本身的作用域定义了name.

总之。。这里env函数的作用域是不能影响echo函数的。。

ringa_lee

当然是laruence,在函数定义的时候就定了,如果全局作用域下没有name,无论怎么调用都会报错。

高洛峰
laruence

函数执行的时候先在自己的作用域查找,没有的话才去上级作用域。
而上级作用域是看他在哪定义的,而不是在哪执行的。
所以会找到上级-> 全局下的 name

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号