【发布时间】:2016-05-25 09:32:57
【问题描述】:
我正在阅读ECMAScript 5.1 Specification,但我被以下句子所困扰:
规范类型值是规范工件,不一定对应于 ECMAScript 实现中的任何特定实体。
如果它们不一定对应于任何特定实体,它们对应的是什么?我的意思是规范类型值属于规范类型值的集合(显然),那这句话想说什么?
【问题讨论】:
我正在阅读ECMAScript 5.1 Specification,但我被以下句子所困扰:
规范类型值是规范工件,不一定对应于 ECMAScript 实现中的任何特定实体。
如果它们不一定对应于任何特定实体,它们对应的是什么?我的意思是规范类型值属于规范类型值的集合(显然),那这句话想说什么?
【问题讨论】:
ECMAScript 规范描述了语言应该如何从脚本在符合标准的环境中执行的角度来表现。它没有描述应该如何实现该环境,只是描述在其中运行的脚本在给定一组输入的情况下应该如何工作。
这句话的第一部分对这里的上下文很重要:
规范类型对应于在算法中用于描述 ECMAScript 语言结构和 ECMAScript 语言类型的语义的元值。规范类型有 Reference、List、Completion、Property Descriptor、Property Identifier、Lexical Environment 和 Environment Record。
所以您发布的报价中的“规格类型”:
规范类型值是规范工件,不一定对应于 ECMAScript 实现中的任何特定实体。
是其中一种类型,例如“参考”或“属性标识符”。
这要说明的一点是,您的实现可以随意实现这些概念。不要求您的实现有一些表示“参考”类型的对象,或一些表示“完成”或其他任何对象的对象。只要从在您的实现上运行的脚本的角度来看,事情看起来是正确的,您就可以随意实现该语言。
【讨论】: