我有一个执行 AJAX 调用的函数,例如:
let retrieveData = (section, sectionItem, callback) => {
...
}
第二个参数是可选的,即在某些情况下该参数是必需的,而在其他情况下则不是:
let data = retrieveData(aSection, aSectionItem, function(json)) {
...
});
和:
let data = retrieveData(aSection, undefined, function(json)) {
...
});
在第二种情况下,我希望能够省略 undefined
参数,我相信通过解构的方式分配选项/默认值是答案(按照这个例子:https://javascript.info/destructuring-assignment#smart-function-parameters) ,但我对如何构建代码缺乏了解。
最佳答案
请使用可选参数和deconstruct你的参数。
const foo = (section, {sectionItem, callback} = {}) => {
console.log(section, sectionItem, callback);
}
所以 sectionItem
和 callback
都是可选的:
let data = retrieveData(aSection, {
sectionItem: 'some',
callback: json => {
...
},
});
这样你就可以调用:
retrieveData(aSection)
retrieveData(aSection, {sectionItem: 'some'})
retrieveData(aSection, {callback: json => { ... }})
另一个重要的方面是你让可选参数对调用者来说是冗长的。
关于javascript - 在 ES6 中使用解构定义可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46483621/