从调用者的回调函数访问调用者函数的功能?

时间:2019-09-11 10:55:16

标签: javascript callback

当我学习JS回调函数时,遇到以下示例,这很令人困惑。运行two(plus(one()));时,第2行的param b(请参阅// mark-1)访问expr(1, plus(2))中的第一个参数。 plus()是expre()的回调函数。

我整理了一些弄乱代码的可能性,然后在线搜索。但是我想了解更多。 我的问题:如标题中所示,语法是什么,因此我可以了解更多信息?

function plus(a) {
  return function (b) {    // mark-1
    console.log("a:", a, ", b:", b);
    return b + a;
  }
}
function expr(n, operation) {
  if (!operation) {
    //console.log("if (!operation), n: ", n);
    return n;
  }
  //console.log("else      , n: ", n);
  let re = operation(n);
  return re;
}
function one(operation) { 
  return expr(1, operation) 
}
function two(operation) { 
  return expr(2, operation) 
}

two(plus(one()));  // It says 2 + 1 will return 3

0 个答案:

没有答案