Ответ 1
Это деструкция объекта с заданным значением по умолчанию.
Если вы передаете obj как
{ size: true }
вы можете получить доступ к "размеру" внутри конструктора, как обычная переменная
export class Modal {
constructor($modal, {size = null } = {}) {
console.log(size); // prints the size value from the given object
}
}
Если вы ничего не передадите или передаете объект без "размера", размер будет равен нулю. Вы можете сделать больше таких назначений. Просто разделите их запятыми.
Пример:
constructor($modal, { size = null, foo, bar = "test" } = {})
В этом случае, если вы передадите объект без свойства "foo", он будет undefined, остальное будет действовать, как я упоминал выше.
Также стоит упомянуть, что вам нужно добавить = {}
в конце назначения деструктуризации в объявлении constructor
. Это в случае, если вы ничего не пропускаете. В противном случае вам придется передать некоторый объект (может быть пустым).