【发布时间】:2019-09-16 23:07:05
【问题描述】:
我想了解make_binary_op() 函数的工作原理。它需要两个不同的参数
- 一个函数参数
addop或mulop - 一个数组参数(
my_little_stack/my_little_array)
我使用了 firefox 调试器来观察执行,但仍然不明白 make_binary_op() 函数是如何工作的。我得到了所有的弹出和推送等。
function make_binary_op(func) {
return function(my_little_array) {
let wunth = my_little_array.pop();
let zeroth = my_little_array.pop();
my_little_array.push(func(zeroth, wunth));
return my_little_array;
};
};
let addop = make_binary_op(function(zeroth, wunth) {
return zeroth + wunth;
});
let mulop = make_binary_op(function(zeroth, wunth) {
return zeroth * wunth;
});
let my_little_stack = [];
my_little_stack.push(3);
my_little_stack.push(5);
my_little_stack.push(7);
mulop(my_little_stack); // my_little_stack is [3, 35]
addop(my_little_stack); // my_little_stack is [38]
let answer = my_little_stack.pop(); // my_little_stack is []
console.log(answer);
代码按规定工作。 answer 的值是 38,my_little_stack 最后是 []。
【问题讨论】:
-
你能说得更具体点吗?您需要帮助的具体部分是什么?
-
@JorgeFuentesGonzález 不,它没有。 OP 不是要求就如何改进它提供反馈,而是要求了解它是如何工作的。
-
请教时不能有一个正确答案。
-
你只需要了解高阶函数。
make_binary_op只接受一个参数,并返回一个函数。它返回的函数是分配给addop和mulop的函数。
标签: javascript function stack binary-operators