Параметры ES6 по умолчанию с деструктурированным объектом в качестве второго параметра, ссылающегося на первый параметр
Я пишу метод, который принимает два параметра: первый объект jQuery, который содержит форму, второй объект "options" с параметрами по умолчанию, некоторые из которых ссылаются на форму в первом параметре.
Я знаю, что параметр по умолчанию может ссылаться на значение параметра по умолчанию, который предшествует ему, поэтому мне интересно, почему мой код дает сбой.
const validation = {
validateForm(form, {
btn: form.find('button'),
action: null,
displayErrInline: form.attr('validate') === 'inline',
disableValidation: false
}) {
// do stuff
}
};
Может кто-нибудь объяснить, что с этим не так?
1 ответ
Я понял, что я делаю не так. Я использовал двоеточия для предоставления значений по умолчанию для деструктурированного объекта вместо переменной присваивания.
Вот пример правильного способа передачи значений по умолчанию для деструктурированного объекта в параметрах функции:
const validation = {
validateForm(form, {
btn = form.find('button'),
action = null,
displayErrInline = form.attr('validate') === 'inline',
disableValidation = false
}) {
// do stuff
}
};
При желании я могу назначить пустой объект (= {}
) как значение по умолчанию для второго аргумента, чтобы избежать ошибок, если второй параметр не передан.