gpt4 book ai didi

作为对象的 JavaScript 词法环境

转载 作者:行者123 更新时间:2023-11-30 19:57:35 24 4
gpt4 key购买 nike

我不禁注意到 JS 对象和词法环境之间的类比(如前所述,例如,here)。两者都是名称/值对的容器。两者都链接到另一个同类事物:在词法环境的情况下,父环境,在 JS 对象的情况下,原型(prototype)对象。这两种链接实际上服务于相同的目的:在词法环境的情况下,在词法环境的链中查找变量的值,在对象的情况下,在原型(prototype)链中查找属性的值。

鉴于这个相似的类比,有没有办法在 JS 程序中将词法环境作为对象引用?将来有没有计划在语言中添加这样的功能?我确定它对某些东西有用...

最佳答案

这个类比有一个重要的区别:词法环境是从静态代码分析中创建的,并且不会改变它们的形状。它们是记录,而不是动态对象。这既有助于解释器/编译器优化查找,又能防止它们作为对象公开。

只有两个小东西引入了动态作用域:evalwith。 (后者允许将动态对象实际放入作用域链中)。他们都因此而受到鄙视。

关于作为对象的 JavaScript 词法环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53769549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com