【发布时间】:2019-11-19 00:08:06
【问题描述】:
我想知道是否有一种方法可以使用解构来将对象的所有属性复制到 this 而不知道道具。
class MyObject {
constructor(data) {
this.someFlag = true
// How can I destructure 'data' into this.
}
}
我见过this 的答案(和其他一些),但他们都知道要复制的属性或Object.assign 的用法。我想知道如何使用简单的解构来做到这一点。
【问题讨论】:
-
如果你不知道属性,解构不起作用?当您的
Object.assign解决方案已经有效时,不确定您要实现什么。 -
@roliroli
Object.assign(this, data); -
这样做有什么用?您需要事先了解这些属性。
-
@FredMaggiowski 在不知道属性的情况下,您对对象解构唯一可以做的事情就是制作一个浅拷贝:
const { ...copy } = data;,您仍然不知道其中的属性。不,你不能把this放在那里,因为this不是变量的有效名称。 -
即使使用现代 ES,
this = ...在 JS 中仍然是不可能的。
标签: javascript object ecmascript-6