我在Javascript中使用默认参数遇到了问题。
我有这样的功能:

function search(filterOptions = {
    foo: 'bar',
    foo2: 'bar2'
}) {
  ...
}


当我不带参数调用search()时,filterOptions设置为{foo: 'bar', foo2: 'bar'}
但是当我呼叫search({ foo: 'something' })时,foo2是不确定的。

我不能将filterOptions分为几个参数,因为选项是独立的。

我怎样才能使foo2无论如何(干净地)采用其默认值?

(我在nodejs上)

谢谢!

最佳答案

您可以在函数中定义默认值,并使用spread syntax组合两个对象,这将覆盖适用的默认值。



function search(filterOptions) {
  const defaults = { foo: 'foo', foo2: 'bar' };
  filterOptions = {...defaults,...filterOptions};
  console.log(filterOptions);
}

search({foo: 'something'});

07-26 08:00