Is it possible to use destructuring assignment in a JavaScript class\' constructor to assign the instance variables similar to how you can do it to normal variables?
The
In addition to Nils´s answer. It also works with object spread (...)
class Foo {
constructor(options = {}) {
({
one: this.one,
two: this.two,
...this.rest
} = options);
}
}
let foo = new Foo({one: 1,two: 2,three: 3,four: 4});
console.log(foo.one); // 1
console.log(foo.two); // 2
console.log(foo.rest); // {three: 3, four: 4}
... and/or custom settters for further processing
class Foo {
constructor(options = {}) {
({
one: this.one,
two: this.two,
...this.rest
} = options);
}
set rest(options = {}) {
({
three: this.three,
...this.more
} = options);
}
}
let foo = new Foo({one: 1,two: 2,three: 3,four: 4});
console.log(foo.one); // 1
console.log(foo.two); // 2
console.log(foo.three); // 3
console.log(foo.more); // {four: 4}