Javascript 对象排列顺序和其他属性扮演什么角色?
考虑一个对象“数据”Javascript 对象排列顺序和其他属性扮演什么角色?,javascript,spread-syntax,Javascript,Spread Syntax,考虑一个对象“数据” data = { draggingTaskId: '', entities: {}, selectedTaskIds: [], } 我在两个不同的顺序中使用解构赋值,但两次的行为都不同。在对象分解分配中顺序重要吗 console.log('----------------------------------'); console.log({ ...data, draggingTaskId: "task-0", }); c
data = {
draggingTaskId: '',
entities: {},
selectedTaskIds: [],
}
我在两个不同的顺序中使用解构赋值,但两次的行为都不同。在对象分解分配中顺序重要吗
console.log('----------------------------------');
console.log({
...data,
draggingTaskId: "task-0",
});
console.log({
draggingTaskId: "task-0",
...data,
});
console.log('----------------------------------');
在第二个例子中,DraggingTaskKid作为一个空字符串出现。顺序确实相关-如果具有相同的键,则后面出现的项将覆盖前面出现的项
console.log({
数据
draggingTaskId:'task-0',//这将覆盖data.draggingTaskId=''的值,结果是'task-0'
})
console.log({
draggingTaskId:'task-0',//在本例中,此键被data的值覆盖。draggingTaskId='',结果为“”
数据
})
您可能会发现这一点很有帮助—“顺序在对象销毁分配中重要吗?”它与您编写它的顺序一样简单,首先在对象中分配了一个值,但当您将另一个具有相同键但不同值的对象分散到其中时,第二个结果你错了。我最初的理解是,排列顺序并不重要,它只是排列剩余的键。
--------------------------------
draggingTaskId: "task-0"
entities: {columnOrder: Array(2), columns: {…}, tasks: {…}}
selectedTaskIds: ["task-0"]
draggingTaskId: ""
entities: {columnOrder: Array(2), columns: {…}, tasks: {…}}
selectedTaskIds: ["task-0"]
-----------------------------------