我正在浏览其他人的代码,并不断看到以这种风格编写的函数:
getConsents: (_, callback = () => {}) => {
const data = {};
callback(data, true);
}
我知道有些人在不适当的情况下使用下划线作为跳过参数的约定,尽管我无法理解为什么以这种方式编写回调函数参数。
我尝试使用babel来查看它在es5中是否仍然有意义,尽管运气不佳:
getConsents: (function (_) {
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
var data = {};
callback(data, true);
});
如果有人可以解释这个约定,或详细说明它在做什么,将不胜感激。
答案 0 :(得分:1)
从ES6开始,您可以为功能参数指定默认值。例如:
function greet(name = 'John Doe') {
console.log('hello', name);
}
greet('Alan Alda');
greet();
示例中的函数默认将回调参数设置为空函数。这样,它可以盲目调用它,而无需先检查未定义的内容。
答案 1 :(得分:0)
在ES5中,它可能类似于:
getConsents: (function(_, callback = function() {}) {
const data = {};
callback(data, true);
})
这只是为回调设置默认值。