无法在构造函数中赋值

时间:2016-04-27 18:02:11

标签: javascript ecmascript-6 this assign

我正在尝试将values中的道具合并到this中。

以下引发错误。我怎么能这样做?

this = {...this, ...values}

2 个答案:

答案 0 :(得分:19)

您可以使用Object.assign方法扩展this

class Foo {
  constructor (props) {
    Object.assign(this, props);
  }
}

const foo = new Foo({ a: 1 });
console.log(foo.a); // 1

答案 1 :(得分:1)

看到您使用点差运算符,您似乎正在使用ECMAScript的第3阶段提案。

https://github.com/tc39/proposal-object-rest-spread

尝试使用Object.assign方法:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

Object.assign()方法用于将所有可枚举的自有属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

  

Object.assign( target ... sources );