我正在查看ES6类定义,并且不理解构造函数的参数。这是班级:
export class Modal {
constructor($modal, {size = null,} = {}) {
// stuff
}
}
我很困惑 {size = null,} = {}
。这是一个单一的论点吗?这是什么意思?
我正在查看ES6类定义,并且不理解构造函数的参数。这是班级:
export class Modal {
constructor($modal, {size = null,} = {}) {
// stuff
}
}
我很困惑 {size = null,} = {}
。这是一个单一的论点吗?这是什么意思?
这是一个 对象解构 具有给定的默认值。
如果你传递一个obj就好
{ size: true }
你可以像普通变量一样访问构造函数中的“大小”
export class Modal {
constructor($modal, {size = null } = {}) {
console.log(size); // prints the size value from the given object
}
}
如果您没有传递任何内容或传递没有“大小”的对象,则大小将为null。你可以做更多这样的任务。用逗号分隔它们。
例:
constructor($modal, { size = null, foo, bar = "test" } = {})
在这种情况下,如果你传递一个没有属性“foo”的对象,它将是未定义的,其余的就像我上面提到的那样。
还值得一提的是你必须添加 = {}
在结构分配结束时 constructor
宣言。这是在你没有通过任何东西的情况下。否则你必须传递一些对象(可能是空的)。