繁体   English   中英

ES6回调功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM