我正在尝试将名称从一个对象复制到另一个对象,如下所示:
console.log(this.source.name)
//给"mike"
mounted: function() {
this.client.name = Object.assign({}, this.source.name)
}
然后
console.log(this.client.name)
//用1: m, 2: i, 3: k, 4:e
给对象
我做错了什么?我该如何更正我的代码?
Object.assign
采取两个物体参数,但你将string
传递给第二个参数。所以,如果你想分配字符串值,只需做this.client.name = this.source.name
。
如果要复制对象值,请使用Object.assign
并将对象存储在this.source.name
中作为this.source.name={"key":"value"};
。
您可以使用以下调整:
this.client = Object.assign({}, this.client, {name: this.source.name})
我会使用ES6 spread operator语法
const b = {iam b}
const a = {...b}
console.log(a) // {iam b}