gpt4 book ai didi

JavaScript map 阴影

转载 作者:行者123 更新时间:2023-11-30 15:23:48 28 4
gpt4 key购买 nike

用 JavaScript 编写解析器,对于任何语言,显然都使用 Map 来存储名称到变量的映射。

大多数语言允许以某种方式或内部作用域中的另一个变量遮蔽外部作用域中的变量。实现这一点的理想数据结构是功能映射。如果没有,似乎有两种选择。

  1. 将 Map 视为功能图,创建外部 map 的副本,将内部变量添加到副本中,在内部范围结束时对其进行垃圾回收。这很优雅,但每次都花费 O(N) 时间复制现有变量,因此如果在给定点有很多变量存在,则可能会很慢。

  2. 采用完整的命令式风格,仅使用单个映射,保存旧绑定(bind)并在内部范围的末尾恢复它。这速度很快,但不够优雅且容易出错。

我还缺少更好的选择吗?是否就哪个选项最好达成共识?

最佳答案

使用 Map 对象的链表来表示作用域 chain。如果在第一个链接中没有找到标识符,则递归遍历其余部分,直到全局范围。

关于JavaScript map 阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43297825/

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