对象成员的排序

Ordering of object members

本文关键字:排序 成员 对象      更新时间:2023-09-26

可能的重复项:
JavaScript 是否保证对象属性顺序?

我注意到在Javascript(至少在Chrome上)中,对象会记住其成员的顺序。 例如,在

var foo = { x: 1, y: 2 }
var bar = { y: 2, x: 1 }

foobar可以通过迭代它们时键的显示顺序来区分。

我的问题是:

  1. 此行为是由标准指定的,还是应将其视为实现细节?
  2. 如果标准指定,有没有办法改变顺序?

对象属性不排序。该行为取决于实现。

但是,大多数JS引擎似乎都保持了当今对象文字中使用的顺序。

不过,V8/Chrome前段时间没有这样做。