带有解构对象的ES6默认参数作为引用第一个参数

时间:2017-11-21 12:33:30

标签: javascript ecmascript-6 default-parameters object-destructuring

我正在编写一个带有两个参数的方法:第一个是包含表单的jQuery对象,第二个是"选项"具有默认参数的对象,其中一些引用第一个参数中的表单。

我知道默认参数可以引用它之前的默认参数的值,所以我想知道为什么我的代码失败了。

const validation = {
  validateForm(form, {
    btn: form.find('button'),
    action: null,
    displayErrInline: form.attr('validate') === 'inline',
    disableValidation: false
  }) {
    // do stuff
  }
};

有人可以解释一下这有什么问题吗?

1 个答案:

答案 0 :(得分:1)

我弄清楚我做错了什么。我使用冒号为析构化对象提供默认值而不是赋值变量。

以下是将默认值传递给函数参数中的析构对象的正确方法示例:

const validation = {
  validateForm(form, {
    btn = form.find('button'),
    action = null,
    displayErrInline = form.attr('validate') === 'inline',
    disableValidation = false
  }) {
    // do stuff
  }
};

或者,我可以指定一个空对象(= {})作为第二个参数的默认值,以避免在没有传递第二个参数时出错。