I'm looking at an ES6 class definition and don't understand the arguments to the constructor. Here's the class:
export class Modal {
constructor($modal, {size = null,} = {}) {
// stuff
}
}
I'm confused by this {size = null,} = {}
. Is that a single argument? What does it mean?
It's an object destructuring with a given default value.
If you pass an obj like
{ size: true }
you can access the "size" inside the constructor like a normal variable
export class Modal {
constructor($modal, {size = null } = {}) {
console.log(size); // prints the size value from the given object
}
}
If you don't pass anything or you pass an object without "size", size will be null. You can make more of such assignments. Just seperate them by commas.
Example:
constructor($modal, { size = null, foo, bar = "test" } = {})
In this case if you pass an object without property "foo" it will be undefined, the rest acts like I mentioned above.
Also it's worth mentioning that you have to add = {}
at the end of destructuring assignment in the constructor
declaration. It's in case when you don't pass anything. Otherwise you would have to pass some object (may be empty).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With