扩展运算符相当于对象赋值
Spread operator equivalent of Object assign
将这些对象合并为展开操作符的等效方法是什么?我想在redux应用中使用spread而不是assign
return Object.assign({}, obj1, obj2)
相当于:
return { ..obj1, ...obj2 };
然而,如果没有编译(例如通过babel),这将无法工作,因为对象rest扩展是第三阶段的推荐,目前的浏览器不支持。如果你使用babel,你必须使用Object rest spread transform babel插件或babel stage-3预设。
如文档中所述:
注意:在ES6中,扩展操作符通常会深入一层while复制数组。因此,它们不适合复制多维数组。Object也是同样的情况。分配和对象扩展操作符。看看下面的例子可以更好地理解理解。
这意味着扩展是在一个新的对象中进行的,所以不需要像Object.assign
那样传递一个空对象。因此你可以这样做:
return {...obj1, ...obj2}
作为额外的注意,下面是babel如何编译展开操作符:
const a = {...obj1, ...obj2}
就变成:
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var a = _extends({}, obj1, obj2);
自己看
相关文章:
- Javascript-根据赋值顺序,按键合并对象数组
- 如何通过json对象数组为嵌套对象赋值
- JavaScript 评估 - 如何为对象属性赋值
- 通过另一个对象上的字符串值为 javascript 对象属性赋值
- Javascript对象在赋值后丢失属性
- 什么's具有fn's赋值运算符两侧的名称(一个对象fn)
- JQuery 对象似乎没有在模块中赋值
- 了解 JavaScript 对象赋值的顺序
- Javascript GC 并将对象赋值为 null
- JavaScript 赋值属性语句以返回父对象
- 对闭包内对象的赋值的行为类似于指针
- 如果我忽略对象在层次结构中的深度,如何为对象的字段赋值
- 对象的 JavaScript 变量赋值返回字符串
- 如何为 JSON 对象赋值
- 我可以预先声明变量来解构对象的赋值吗?
- Javascript 对象文字赋值
- 正在破坏对象属性中存储的数组的赋值
- 如何根据其他键自动为另一个键赋值's在对象中的值
- 在jquery中获取赋值对象的方法
- 表单操作赋值 - 对象不支持此属性或方法