将额外参数传递给回调函数

Kul*_*lin 37 javascript parameters function callback

我有一个函数callWithMagic,它将一个回调函数作为参数,并用一个参数调用它.

const callWithMagic = callback => {
  const magic = getMagic();
  callback(magic);
};
Run Code Online (Sandbox Code Playgroud)

我还有一个函数processMagic,它有两个参数:magictheAnswer.

const processMagic = (magic, theAnswer) => {
  someOtherMagic();
};
Run Code Online (Sandbox Code Playgroud)

我想将函数processMagic作为参数传递给callWithMagic,但我也希望42将第二个参数传递theAnswerprocessMagic.我怎样才能做到这一点?

callWithMagic(<what should I put here?>);
Run Code Online (Sandbox Code Playgroud)

str*_*str 45

只需创建一个包装回调:

callWithMagic(function(magic) {
  return processMagic(magic, 42);
});
Run Code Online (Sandbox Code Playgroud)

或使用ECMAScript 6 箭头功能:

callWithMagic(magic => processMagic(magic, 42));
Run Code Online (Sandbox Code Playgroud)