我在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'});