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

js作用域链

标签:
JavaScript
理解作用域是什么?
  • 在大多数语言中都是用花括号{}来形成一个作用域,俗称块作用域。

  • 但是在JavaScript中{}并没有带来块作用域,JavaScript的作用域是靠函数来形成的,也就是说一个函数内定义的变量函数外不可以访问。

作用域链定义

  • 在 JavaScript 中,函数也是对象,实际上,JavaScript 里一切都是对象。函数对象和其它对象一样,拥有可以通过代码访问的属性和一系列仅供 JavaScript 引擎访问的内部属性。其中一个内部属性是 [[Scope]],由 ECMA-262 标准第三版定义,该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了哪些数据能被函数访问。

  • 当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从上一级执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表就叫做作用域链。

注意

  • 函数在执行的过程中,先从自己内部找变量

  • 如果找不到,再从创建当前函数所在的作用域去找, 以此往上

  • 注意找的是变量的当前的状态



作者:徐金俊
链接:https://www.jianshu.com/p/8b2bbf7968d5


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消