如何强制对象键值对首先位于对象中

How to force an object key-value pair to sit first in an object?

本文关键字:对象 于对象 何强制 键值对      更新时间:2023-09-26

我已经有一个包含某些内容的对象:

{
    name: 'Smith',
    age: 24
}

我想添加其他东西,但强迫它先坐下。我该怎么做?

在 ECMAScript 的过去版本中,对象中键的顺序是未定义的(意思是,顺序无关紧要,你不能指望顺序保持不变)。

然而,在 ECMAScript 2015 中,顺序被明确定义为插入它们的顺序,这意味着你只能在对象的末尾插入新键。


根据这个答案,值得注意的是,虽然顺序是在 ES2015 中定义的,但由于遗留原因,ES5 及更低版本中的所有函数都不需要实现它。

但是,(从这里的个人经验来看,我可能完全错了)从我记事起,所有浏览器都实现了今天的规范中的对象顺序。

除了@MadaraUchiha答案之外,您还可以使用 Object.assign() 创建新对象并先分配新键,然后再分配其余键:

var obj = {
    name: 'Smith',
    age: 24
};
var obj = Object.assign({}, {prop: 'something else'}, obj);