在 JavaScript 类的构造函数中,是否可以使用解构赋值来分配实例变量,就像你可以对普通变量做的那样?
以下示例可行:
var options = {one: 1, two: 2};
var {one, two} = options;
console.log(one) //=> 1
console.log(two) //=> 2
但是我无法让类似以下的内容正常工作:
class Foo {
constructor(options) {
{this.one, this.two} = options;
// This doesn't parse correctly and wrapping in parentheses doesn't help
}
}
var foo = new Foo({one: 1, two: 2});
console.log(foo.one) //=> I want this to output 1
console.log(foo.two) //=> I want this to output 2
Object.assign(this, options);
。 - Pointylet o = {a: 1, b: 2}, p = {};
。将o
解构为一个更简单的p
非常容易:({b: p.b} = o);
为p
产生了Object {b: 2}
。 - user6445533