具有解构对象的 ES6 默认参数作为引用第一个参数的第二个参数
ES6 default parameters with destructured object as second parameter referencing first parameter
我正在编写一个带有两个参数的方法:第一个包含表单的 jQuery 对象,第二个带有默认参数的 "options" 对象,其中一些引用表单中的表单第一个参数.
我知道默认参数可以引用它前面的默认参数的值,所以我想知道为什么我的代码会失败。
const validation = {
validateForm(form, {
btn: form.find('button'),
action: null,
displayErrInline: form.attr('validate') === 'inline',
disableValidation: false
}) {
// do stuff
}
};
有人可以解释一下这有什么问题吗?
我发现我做错了什么。我使用冒号为解构对象而不是赋值变量提供默认值。
以下是将默认值传递给函数参数中的解构对象的正确方法示例:
const validation = {
validateForm(form, {
btn = form.find('button'),
action = null,
displayErrInline = form.attr('validate') === 'inline',
disableValidation = false
}) {
// do stuff
}
};
可选地,我可以指定一个空对象 (= {}
) 作为第二个参数的默认值,以避免在没有传递第二个参数时出错。
我正在编写一个带有两个参数的方法:第一个包含表单的 jQuery 对象,第二个带有默认参数的 "options" 对象,其中一些引用表单中的表单第一个参数.
我知道默认参数可以引用它前面的默认参数的值,所以我想知道为什么我的代码会失败。
const validation = {
validateForm(form, {
btn: form.find('button'),
action: null,
displayErrInline: form.attr('validate') === 'inline',
disableValidation: false
}) {
// do stuff
}
};
有人可以解释一下这有什么问题吗?
我发现我做错了什么。我使用冒号为解构对象而不是赋值变量提供默认值。
以下是将默认值传递给函数参数中的解构对象的正确方法示例:
const validation = {
validateForm(form, {
btn = form.find('button'),
action = null,
displayErrInline = form.attr('validate') === 'inline',
disableValidation = false
}) {
// do stuff
}
};
可选地,我可以指定一个空对象 (= {}
) 作为第二个参数的默认值,以避免在没有传递第二个参数时出错。