Cha*_*ish 3 javascript json object ecmascript-6 spread-syntax
在JavaScript中,扩展运算符的放置和排序是否重要?
var item = {/* key value pairs here */};
var itemB = {/* key value pairs here */};
Run Code Online (Sandbox Code Playgroud)
例如,在以下代码中,代码段newItem总是具有相同的键值对?
var newItem = {
...item,
...itemB
};
Run Code Online (Sandbox Code Playgroud)
如
var newItem = {
...itemB,
...item
};
Run Code Online (Sandbox Code Playgroud)
Cha*_*ish 10
除了键值对的一般顺序,它对对象的结果没有真正的超级主要影响,唯一的另一个区别是if item和itemB有重复的键.
例如.
var item = {firstName: "Bob"};
var itemB = {lastName: "Smith", firstName: "Tim"};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,以下两个项目将不相同.
var newItem = {
...item,
...itemB
};
// {lastName: "Smith", firstName: "Tim"}
Run Code Online (Sandbox Code Playgroud)
-
var newItem = {
...itemB,
...item
};
// {lastName: "Smith", firstName: "Bob"}
Run Code Online (Sandbox Code Playgroud)
因此,如果存在重复的键,则扩展操作符的顺序很重要.
如果您希望为对象提供默认键值对,这可能特别有用.您可以在扩展运算符之前放置默认键值对,如果它们在扩展运算符中使用的对象中不存在,它将作为新对象的默认值.
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |