Czy możliwe jest użycie destructuring assignment w konstruktorze klasy JavaScript, aby przypisać zmienne instancji podobne do tego, jak można to zrobić do normalnych zmiennych?Czy możliwe jest zniszczenie zmiennych instancji/elementów w konstruktorze JavaScript?
Poniższy przykład działa:
var options = {one: 1, two: 2};
var {one, two} = options;
console.log(one) //=> 1
console.log(two) //=> 2
Ale nie mogę dostać coś podobnego do następujących prac:
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
myślę, że więcej ogólne pytanie brzmi, czy istnieje formularz przypisywania destrukturyzacji, który zapewnia tworzenie właściwości na istniejącym obiekcie zamiast inicjatora obiektu. – Pointy
W każdym razie zawsze jest 'Object.assign (this, options);' – Pointy
Warto wspomnieć, że można zastosować tę samą składnię poza konstruktorami. Podano dwa obiekty: 'let o = {a: 1, b: 2}, p = {};'. Dekonstruuj "o" mniej skomplikowanemu "p" jest spokojem ciasta: '({b: p.b} = o);' daje 'Object {b: 2}' dla 'p'. – ftor