JavaScript—对象中排列运算符的位置/顺序是否重要?
在JavaScript中,排列运算符的位置和顺序是否重要JavaScript—对象中排列运算符的位置/顺序是否重要?,javascript,json,object,ecmascript-6,spread-syntax,Javascript,Json,Object,Ecmascript 6,Spread Syntax,在JavaScript中,排列运算符的位置和顺序是否重要 var item = {/* key value pairs here */}; var itemB = {/* key value pairs here */}; 例如,在以下代码段中,newItem是否始终具有相同的键值对 var newItem = { ...item, ...itemB }; 作为 除了键值对的一般顺序对对象的结果没有太大影响之外,唯一的区别是item和itemB有重复的键 比如说 var it
var item = {/* key value pairs here */};
var itemB = {/* key value pairs here */};
例如,在以下代码段中,newItem
是否始终具有相同的键值对
var newItem = {
...item,
...itemB
};
作为
除了键值对的一般顺序对对象的结果没有太大影响之外,唯一的区别是
item
和itemB
有重复的键
比如说
var item = {firstName: "Bob"};
var itemB = {lastName: "Smith", firstName: "Tim"};
在这种情况下,以下两项将不相同
var newItem = {
...item,
...itemB
};
// {lastName: "Smith", firstName: "Tim"}
-
因此,如果存在重复的键,则排列运算符的顺序并不重要
如果您希望为对象提供默认键值对,这将特别有用。您可以将默认键值对放在扩展运算符之前,如果扩展运算符中使用的对象中不存在这些键值对,则它将作为新对象的默认值
var newItem = {
...item,
...itemB
};
// {lastName: "Smith", firstName: "Tim"}
var newItem = {
...itemB,
...item
};
// {lastName: "Smith", firstName: "Bob"}