[英]ES6 Callback function
我正在浏览其他人的代码,并不断看到以这种风格编写的函数:
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);
});
如果有人可以解释这个约定,或详细说明它在做什么,将不胜感激。
从ES6开始,您可以为功能参数指定默认值。 例如:
function greet(name = 'John Doe') { console.log('hello', name); } greet('Alan Alda'); greet();
您示例中的函数默认将回调参数设置为空函数。 这样,它可以盲目调用它,而无需先检查未定义。
在ES5中,它可能类似于:
getConsents: (function(_, callback = function() {}) {
const data = {};
callback(data, true);
})
它只是为回调设置默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.