当我学习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