javascript - js作用域的问题
PHP中文网
PHP中文网 2017-04-11 10:54:57
[JavaScript讨论组]
PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
巴扎黑

Javascript 不止有函数(闭包)作用域,还有块级作用域

然而无论何种作用域,所声明的量的作用域都是由定义时所处的环境而非运行时所处的环境决定的。

这也就是说,一个函数能访问哪些量,在定义时就已经确定了。

怪我咯

js只有函数作用域,一个变量的作用域是在函数声明的时候确定,而不是在函数调用执行时。
函数作用域是一个静态的概念,在函数声明时会构建作用域链,函数执行时在这个作用域链中查找,一直到顶层全局作用域。
问题中提到a变量只在foo函数中定义,bar函数执行的时候会在bar函数的当前作用域中查找,找不到再到其外层函数(非执行它的函数,声明时的外层函数)的作用域中查找,一直到全局作用域,发现没有就会报ReferenceError

PHPz

因为a不是全局变量所以访问不到。主要是超出了作用域。

PHP中文网

通常情况下作用域在函数申明时就定了,和在哪里调用无关

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

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