VO变量对象

本文围绕JS执行上下文展开,介绍了栈和对象引用等预备知识。阐述执行上下文是函数或全局代码的执行环境,包含执行所需信息。还说明了执行上下文栈用于管理执行上下文,以及执行上下文的内容,如VO变量对象、作用域和this等,详细讲解了VO对象的创建步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行上下文

JS原理:原型链、执行上下文、事件循环

预备知识

栈是类似于数组的一种数据结构。

  1. 对象引用

如果变量是一个对象,实际上变量中存放的是对象的地址

概念

执行上下文:某个函数或全局代码的执行环境,该环境中包含执行代码需要的所有信息。

可以简单的理解为:执行上下文是一个对象,对象中包含了执行代码需要的信息。

当执行一个函数时,需要建立执行上下文,建立之后,才正是开始执行。

call stack(执行上下文栈):组织管理程序运行过程中的执行上下文

执行上下文的内容

  1. VO:variable object,变量对象,存放的是函数或全局代码执行过程中需要用到的局部变量
  2. scope:作用域
  3. this

vo是一个对象,调用函数或执行全局代码时创建,创建一个vo,需要经过三步:

  1. 确定函数形参的值(包括arguments对象)

在函数中寻找数据时,会先从vo中查找,如果vo中不存在,再使用外层数据

AO: active object,执行栈顶部上下文的vo

创建vo对象

  1. 确定形参值
  2. 确定函数中所有的函数字面量声明
    1. 该函数必须是字面量声明,字面量声明提取到vo后,可以认为该声明失效
    2. 如果当前vo中出现同名属性,直接覆盖
  3. 确定函数中所有的变量声明(var),将其提取到上下文中,值为undefined
    1. 如果当前vo中出现同名属性,忽略

编译:将一种语言代码,翻译成另外一种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值