现在假设有一个函数A如下,这个函数用来在控制台打印出一个值
function A(value){
console.log(value);
}
还有一个函数B如下
function B(callback){
callback();
}
现在的需求是,要求在函数B中调用A(1),即在控制台输出1。
如果这么写
B(A(1));
那么控制台会报错callback is not a function
。
现在有两种解决方案:
方案一:重写B方法
function B(callback,param){
callback(param);
}
B(A,1);
安装上述方法可以成功,但是在实际场景中,param的个数不好控制,这样写起来也麻烦。
方案二:使用闭包原则,我们这么写
function A(value){
console.log(value);
}
function B(callback){
callback();
}
B(function(){A(1)});