如何解决ECMAScript 规范提到的内在对象创建顺序是否在某处定义?
这是一个关于 ECMA-262 最新修订版的问题。在https://tc39.es/ecma262/#sec-createintrinsics它说
必须对内部函数及其属性的创建进行排序,以避免对尚未创建的对象产生任何依赖性。
是否在某处定义了特定的顺序,或者实施者是否必须自己解决这个问题?
我之所以这么问是因为这样会很好,并且非常适合附录。但也许我不知为何错过了。
感谢您的阅读和亲切的问候!
解决方法
不,没有特定的顺序。用户代码无法观察到,所以根本没有关系。
实现者必须自己决定。有很多可能的订单。您甚至可以创建彼此分离的对象及其属性,因为存在循环引用(例如在 .prototype
与其 .constructor
之间,或 Function
和 Object
之间)。
该部分包含以下文本:
每个字段的值都是一个新的对象值,以第 19 至 28 条中每个对象的规范所定义的属性值完全递归填充。
子句的顺序就是定义的顺序。
比如先定义global object,然后定义JS objects,定义functions,其他的比如Errors和各种Error subclasses定义,等等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。