ES6对象随字符串传播

时间:2018-09-10 18:32:00

标签: javascript ecmascript-6 babeljs

假设我要使用传播语法为对象分配新属性

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

期望:clone={payload:"abc"}

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

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

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

1 个答案:

答案 0 :(得分:3)

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

要达到预期的结果,可以执行以下操作:

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

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