使用回调函数作为可选参数

是这样的 目前写一个方法
function a(c, callback) {
callback()
}
我在别的地方调用这个方法的时候,这个参数callback作为可选参数,在有些地方调用的时候不写这个callback,我不想每一个a方法都需要回调方法。问下各位这个要这么办,可以es6,在下js小白 ,谢谢大家

阅读 6.7k
6 个回答
function a(c, callback = () => {}) {
callback()
}

判断可选参数是否存在

function a(c, callback) {
   if(callback && typeof callback === "function"){
       callback();
   }
}

楼上方法也行,如果没有传可选参,则给出一个默认值

简单的话:

function a(c, callback) {
    callback&&callback()
}

是这样的,如果你不想用,就可以不写这个参数。
直接写 a(c)就可以了。
不过回调函数的正确姿势我觉得应该是下面这样的。
比如 ,funciton test(a,callback){
callback(a);
};
还有我实在想不到你在什么地方不要回调函数,除非你把逻辑写在了声明的函数里面。

这个问题就是可选参数使用的问题。

function a() {
    var args = [];

    for(var i = 0; i < arguments.length; ++i) {
        args[i] = arguments[i];
    };

    if(typeof args[args.length-1] === 'function') {
        args[args.length-1]()
    }
    // 那些可选的参数要用条件判断,必须的参数,一次从args数组用调用即可
}

使用arguments对象来写,虽然有点麻烦,但是很好用。
使用ES6 更简单a = (...args) => { }

function a(c, callback = () => {}) {
//其他关于c参数的语句处理
callback()
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题