千家信息网

JavaScript作用域链是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"JavaScript作用域链是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!作用
千家信息网最后更新 2026年11月04日JavaScript作用域链是什么

本篇内容介绍了"JavaScript作用域链是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

作用域

1.什么是作用域

简单来说,作用域(英文:scope)是据名称来查找变量的一套规则,可以把作用域通俗理解为一个封闭的空间,这个空间是封闭的,不会对外部产生影响,外部空间不能访问内部空间,但是内部空间可以访问将其包裹在内的外部空间。

2.[[Scopes]]属性

在javascript中,每个函数都是一个对象,在对象中有些属性我们可以访问,有些我们是不能自由访问的,[[Scopes]]属性就是其中之一,这个属性只能被JavaScript引擎读取。

其实[[scope]]就是我们常说的作用域,其中存储了作用域运行期的上下文集合。

在这里因为func.prototype.constructor和func指向同一个函数,所以在这里我们通过访问函数func的原型对象来查看[[Scopes]]属性

3.作用域链

[[scope]]中存储的执行期的上下文对象的集合,这个集合呈链式连接,我们把这种链式连接叫做作用域链。JavaScript正是通过作用域链来查找变量的,其查找方式是沿着作用域链的顶端依次向下查询(在哪个函数内部查找对象,就在哪个函数作用域链中查找)

4.图解查找变量原理

//以如下代码为例说明JavaScript通过作用域链查找变量的原理**function a() {  function b() {      var b = 123;  }  var a = 123;  b();}var glob = 100;

1.当全局函数a()被定义时,作用域链如下

函数的[[Scopes]]属性指向作用域链对象,此时作用域链只有一个键值对,这个键值对指向全局对象,全局对象存储了全局下可以访问的东西,也就是最外层作用域,大家都可以访问的。

2.当全局函数a()被激活调用时,作用域链如下

此时作用域链能够第一个访问的是Activation Object中的键值对,如果没有才访问全局对象

3.函数a()中函数b被定义时,b的作用域链如下

当b只是被定义没有被调用时,b的作用域链和a是相同的

4.当函数a()中的函数b被激活调用时,作用域链如下

作用域链最先指向函数b()的Activation Object,查找变量也是按作用域链顺序访问,找到就停止

"JavaScript作用域链是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

作用 函数 对象 全局 属性 空间 变量 指向 存储 上下 上下文 内容 原理 就是 更多 激活 知识 链式 相同 通俗 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融科技创新监管互联网金融 互联网科技公司发展 喔噻互联网科技 善班互联网科技有限公司 伴你行互联网科技有限公司 山东吉时兔互联网科技有限公司 中国的互联网科技企业的崛起 河南猎农互联网科技有限公司 互联网科技公司实习生 江阴互联网智能科技产品进口 迪庆互联网科技招生 阿里互联网科技企业 工业互联网等科技实现智能化赋能 国大互联网教育科技有限公司薪资 南通创西澳互联网科技有限公司 广州燕处互联网科技有限公司 萌小萌互联网科技河南有限公司 江苏互联网智能科技产品出厂价 云南互联网科技学费 好易买互联网科技 智能科技公司是互联网公司吗 有马互联网科技 深圳艾佳互联网科技 镁科技互联网资讯平台 互联网系的金融科技公司 和信科技工业互联网 互联网科技和法律行业 互联网科技融合创新 陕西九四连强互联网科技有限公司 恒生科技指数 中概互联网
0