ES6将整个对象分解为此

时间:2019-07-09 12:21:22

标签: javascript object ecmascript-6

我想知道是否存在一种使用解构的方法将对象的所有属性复制到this中而无需了解道具。

class MyObject {
  constructor(data) {
    this.someFlag = true

    // How can I destructure 'data' into this.
  }
}

我已经看到this的答案(以及其他一些答案),但是它们都具有要复制的属性或Object.assign的用法的共同知识。我想知道如何使用简单的解构操作。

1 个答案:

答案 0 :(得分:3)

否,您不能使用解构,因为这将用于重新定义this,而您不能这样做。要么和Object.assign一起去:

Object.assign(this, data);

或者,如果您真的想要使用某种方式进行破坏,则:

Object.entries(data).forEach(([k, v]) => this[k] = v);