ES6 class constructor arguments

后端 未结 1 1635
遇见更好的自我
遇见更好的自我 2021-01-02 00:32

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($moda         


        
相关标签:
1条回答
  • 2021-01-02 00:40

    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).

    0 讨论(0)
提交回复
热议问题