ES6类构造函数的参数

13

我正在查看一个ES6类的定义,但不理解构造函数中的参数。以下是该类:

export class Modal {
    constructor($modal, {size = null,} = {}) {
        // stuff
    }
}

我对这个{size = null,} = {}感到困惑。这是一个单一的参数吗?它是什么意思?


1个回答

13

这是一个带有默认值的对象解构

如果您传递了一个像

{ size: true }

您可以像普通变量一样在构造函数内访问“size”

export class Modal {
  constructor($modal, {size = null } = {}) {
    console.log(size); // prints the size value from the given object
  }
}

如果你没有传递任何参数或者传递的对象不包含"size"属性,那么size将是null。你可以进行更多这样的赋值操作,只需要用逗号分隔即可。
例子:
constructor($modal, { size = null, foo, bar = "test" } = {})

如果你传递一个没有"foo"属性的对象,它将是未定义的,其余部分会像我上面提到的那样。此外,值得一提的是,在构造函数声明中的解构赋值末尾必须添加"={} ",以防你不传递任何内容。否则,你必须传递某些对象(可以为空)。

这并不是一个作业的情况... - Bergi
@bergi 应该是对象解构,对吧?已更正。 - Jakub Rożek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接