首页 > 解决方案 > ES6 对象用字符串传播

问题描述

假设我想使用扩展语法为对象分配一个新属性

const source = { payload: "abc" }
const clone = {}
clone.payload = {...source.payload}

console.log(clone);

预计:clone={payload:"abc"}

实际的:clone={payload:{'0':'a','1':'b','2':'c'}}

仅供参考:如果来源是这样的source = { payload: { component: "correct" } }。然后传播语法正常工作

问题:我是否滥用了 ES6 扩展语法,正确的方法是什么

标签: javascriptecmascript-6babeljs

解决方案


clone.payload = {...source.payload}意味着您创建一个新对象,并将 的内容传播source.payload到其中,然后将该新对象分配给clone.payload.

为了达到您的预期结果,您可以这样做:

const source = { payload: "abc" }
const clone = {...source}

这将创建一个新对象,将其传播source到其中,并将其分配给clone.


推荐阅读