不改变此功能:
function operate(operator, operand1, operand2) {
return operator(operand1, operand2);
}
我想写出来:
var x = operator(add, operate(add, 2, 3), operate(multiply, 4, 5));
得到25作为x的值。我怎样才能做到这一点?
答案 0 :(得分:3)
您有一个拼写错误,operator
应该是operate
:
var x = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));
然后,您需要将add
和multiply
定义为2个函数,每个函数接受2个参数,并返回2个参数的结果并执行相应的操作。
答案 1 :(得分:2)
原因是operator
应该是一个函数,但执行需要将add
和multiply
定义为:
function add(x,y) {
return x + y;
}
function multiply(x,y) {
return x * y;
}
另外,我认为有一个错字:
ReferenceError: operator is not defined
我会:
var x = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));
这会给x = 25
。
答案 2 :(得分:0)
这里你可以创建两个在运算符上命名的函数,你使用“add”和“multiply”作为javascipt允许函数传递参数你的问题解决了
function add(x,y) {
return x + y;
}
function multiply(x,y) {
return x * y;
}
PS:你这里有一个拼写错误“var x = operator(add,operate(add,2,3),operation(multiply,4,5));” 这里的运营商正在运营。