我有一个函数callWithMagic
,它将一个回调函数作为参数,并用一个参数调用它。
const callWithMagic = callback => {
const magic = getMagic();
callback(magic);
};
我还有一个函数processMagic
,它有两个参数:magic
和theAnswer
。
const processMagic = (magic, theAnswer) => {
someOtherMagic();
};
我想将函数processMagic
作为参数传递给callWithMagic
,但我也希望将42
作为第二个参数(theAnswer
)传递给{{1 }}。我怎么能这样做?
processMagic
答案 0 :(得分:41)
只需创建一个包装回调:
callWithMagic(function(magic) {
return processMagic(magic, 42);
});
或使用ECMAScript 6 arrow functions:
callWithMagic(magic => processMagic(magic, 42));
答案 1 :(得分:3)
您可以使用匿名函数
类似
session.sub('Hello', function(){marketEvents(your args);});
答案 2 :(得分:1)
您可以创建一个调用marketEvent
函数的函数。无需复杂化事情
session.sub('Hello', function(args, kwargs) {
marketEvent(args, kwargs, 'my custom data');
});
否则你可以这样做:
var mrktEvent = function(customArgs) {
return function(args, kwargs) {
marketEvent(args, kwargs, customArgs)
};
}
session.sub('Hello', mrktEvent("customEvent"));
答案 3 :(得分:1)
您可以将参数对象绑定到回调函数:
var varObject = {var1: "findButton", var2: true};
function cbFunc() {
console.log(this.var1+ ":" + this.var2);
}
//Example callback
datatable.ajax.reload(cbFunc.bind(varObject));