参数不固定,但总是执行最后一个参数(回调函数)
例如一个 //定义函数a function a(arg1, arg2, arg3, callback){ callback(); }
//调用函数a a(“hello”, function(){ console.log(“hello world”); }) 如果有时候只传一个arg1和callback,怎么样让callback正确的执行。 每次都会提示callback is not a function;
8 回复
arguments或…可变参数
@okotta1 能不能给我说说具体的做法?我看了下想写成function a(…args, callback){}但是不行,写成function a(arg1, …args){}又不知道怎么调用最后那个回调函数。。。
let args=_.toArray(arguments);
callback=args.pop();
let args = Array.from(arguments);
let callback = () => {};
if (typeof args[args.length - 1] === 'function') {
callback = args[args.length - 1];
}
function A(...param) {
var callback = param[param.length-1];
param.pop();
callback(param);
}
function callback(argument) {
console.log(...argument);
}
A(1,2,3,callback);
A('a','b','c',callback);
// 1 2 3
// a b c
function A(...param) {
var callback = param.pop();
callback(param);
}
function callback(argument) {
console.log(...argument);
}
A(1,2,3,callback);
A('a','b',callback);
// 1 2 3
// a b
简化一点
谢谢大家,学到了很多,下来再去补补ES的知识
@Mr-izhe param.pop() 意义是什么,和那个简化的对比