[英]ES6 class constructor arguments
我正在查看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
}
}
如果您不傳遞任何內容,或者傳遞的對象不帶“ size”,則size將為null。 您可以進行更多此類分配。 只需用逗號將它們分開。
例:
constructor($modal, { size = null, foo, bar = "test" } = {})
在這種情況下,如果傳遞不帶屬性“ foo”的對象,則該對象將是未定義的,其余的行為與我上面提到的相同。
另外值得一提的是,您必須在constructor
聲明的解構分配末尾添加= {}
。 萬一您什么都不通過。 否則,您將必須傳遞一些對象(可能為空)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.