Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象排列顺序和其他属性扮演什么角色?_Javascript_Spread Syntax - Fatal编程技术网

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"]

-----------------------------------