0

如果我们有这个 javascript 代码: var obj = { b:{propb: 10}, d: {propd: 15}, c: {propc: 15}, a: {propa: 5} }

v8::Object::GetPropertyNames() 是否保证属性名称将以与上面定义的顺序相同的顺序返回?我做了一个测试,订单被保留了,但我想知道这是否有保证。

4

1 回答 1

1

ECMA-262 规范 5.1:“未指定枚举属性 [...] 的机制和顺序。”

对于 v8,枚举属性的顺序目前也未指定。在某些情况下它可能会起作用,但最好不要依赖它。

关于 v8 订购的 Chromium 票:http ://code.google.com/p/chromium/issues/detail?id=21901

于 2012-04-14T22:31:46.827 回答