js中VO和VE 【2021.12.5】

本文探讨了ECMAScript早期规范中的变量对象(VO)与最新规范中变量环境(VE)的区别。早期VO用于存放变量和函数声明,而在最新规范中,为了更严谨地描述,VO被替换为VE,它可能不再局限于对象实现,可以是Map等数据结构。这一变化反映了规范对执行上下文内部结构的细化和灵活性提升。
摘要由CSDN通过智能技术生成

VO是早期ECMA规范中的变量对象(variable object)的缩写;

早期ECMA规范这么写到:每一个执行上下文会被关联到一个变量对象(variable object)。在源代码中的变量和函数声明会被作为属性添加到VO中。对于函数来说,参数也会被添加到VO中。

在最新的ECMA规范中,对这个定义做出了一些修改,更加的严谨,而变量对象也就是VO修改成了变量环境(variable Environment)也就是VE

来看看最新ECMA规范里面是怎么描述的吧:每一个执行上下文会关联到一个变量环境(variable environment)。在执行代码中变量和函数的声明会作为环境记录(Environment Record)添加到变量环境中。对于函数来说,参数也会被作为环境记录添加到变量环境中。

为什么会做出这个修改呢?因为这个变量环境不一定用对象实现,还能是Map等等,所以用变量环境来描述更加严谨些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值