js 中的执行环境

先来看几个属性

一 执行环境(execution context 简称EC)

当JavaScript代码执行的时候,会进入不同的执行环境(也可以理解为作用域),执行环境定义了变量或函数有权访问的其他数据,这些执行环境会构成了一个执行环境栈(Execution context stack,ECS 可以理解为作用域链)。某个执行环境中的所有代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁(全局执行环境直到应用程序退出)。执行环境结构如下

1846966-9ded98302b647e3d.png

---------------------------------------------其中的几个比较重要的属性
1.变量对象(variable object 简称VO)
变量对象即包含当前EC里的变量的对象,环境中定义的所有变量和函数都保存在这个对象中
2.[[Scope]]属性
指向作用域链,作用域链是一个由变量对象组成的带头结点的单向链表,其主要作用就是用来进行变量查找。而[[Scope]]属性是一个指向这个链表头节点的指针
3.this指针
指向一个环境对象,注意是一个对象,而且是一个普通对象,而不是一个执行环境。
每个函数都有自己的执行环境。当执行流进入一个函数时,函数的执行环境就会被推入一个执行环境栈中。而在函数执行之后,栈将其环境弹出,把控制权返回给之前的执行环境
更详细的执行流程可以看下知乎上的大神的答案第二个(https://www.zhihu.com/question/36393048)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 执行环境(execution context,运行期上下文)是JS中最为重要的一个概念 执行环境(executio...
    JunChow520阅读 9,599评论 0 5
  • 本文内容转载自:https://feclub.cn/post/content/ec_ecs_hostinghttp...
    就那ck阅读 4,239评论 0 6
  • 去暑剂 新加香薷饮 新加香薷逗朴先,散寒化湿功效兼。 若益银翘豆易花,新加香薷祛暑煎。 六一散 滑石甘草六一散,清...
    叶抽抽阅读 5,020评论 0 1
  • 那年 你十五 我也十五 你骑车 我却走路 你转弯 我竟走丢 那年 你十八 我也十八 你爱我 我偏选他 你放手 我强...
    君君12阅读 1,364评论 2 6
  • 堵车这现象在大城市再普通不过了,何况我处在帝都,堵车更是重灾区。每天早晚高峰时,都会有种恨不得自己长双翅膀的心,飞...
    阿同学阅读 3,233评论 4 0

友情链接更多精彩内容