是这样的 目前写一个方法
function a(c, callback) {
callback()
}
我在别的地方调用这个方法的时候,这个参数callback作为可选参数,在有些地方调用的时候不写这个callback,我不想每一个a方法都需要回调方法。问下各位这个要这么办,可以es6,在下js小白 ,谢谢大家
是这样的 目前写一个方法
function a(c, callback) {
callback()
}
我在别的地方调用这个方法的时候,这个参数callback作为可选参数,在有些地方调用的时候不写这个callback,我不想每一个a方法都需要回调方法。问下各位这个要这么办,可以es6,在下js小白 ,谢谢大家
判断可选参数是否存在
function a(c, callback) {
if(callback && typeof callback === "function"){
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) => { }
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
6 回答1.1k 阅读