如果我们有这个 javascript 代码: var obj = { b:{propb: 10}, d: {propd: 15}, c: {propc: 15}, a: {propa: 5} }
v8::Object::GetPropertyNames() 是否保证属性名称将以与上面定义的顺序相同的顺序返回?我做了一个测试,订单被保留了,但我想知道这是否有保证。
如果我们有这个 javascript 代码: var obj = { b:{propb: 10}, d: {propd: 15}, c: {propc: 15}, a: {propa: 5} }
v8::Object::GetPropertyNames() 是否保证属性名称将以与上面定义的顺序相同的顺序返回?我做了一个测试,订单被保留了,但我想知道这是否有保证。
ECMA-262 规范 5.1:“未指定枚举属性 [...] 的机制和顺序。”
对于 v8,枚举属性的顺序目前也未指定。在某些情况下它可能会起作用,但最好不要依赖它。
关于 v8 订购的 Chromium 票:http ://code.google.com/p/chromium/issues/detail?id=21901