underscore.js的_.values
函数会反转返回值的顺序。
有谁知道这种行为背后的原因?
答案 0 :(得分:8)
_.values
适用于对象。属性的顺序未定义(它依赖于实现,即使在实现中也可能以非显而易见的方式变化)。来自the ECMAScript specification的第12.6.4节(“for-in
声明”):
未指定枚举属性的机制和顺序。
下划线使用for..in
或Object.keys
获取属性名称,然后获取值。 Object.keys
的顺序从属于for..in
的顺序(参见第15.2.3.14节)。