在不更改此功能的情况下:
function operate(operator, operand1, operand2) {
return operator(operand1, operand2);
}
我想写出:
var x = operator(add, operate(add, 2, 3), operate(multiply, 4, 5));
并得到 25 作为 x 的值。我怎样才能做到这一点?
在不更改此功能的情况下:
function operate(operator, operand1, operand2) {
return operator(operand1, operand2);
}
我想写出:
var x = operator(add, operate(add, 2, 3), operate(multiply, 4, 5));
并得到 25 作为 x 的值。我怎样才能做到这一点?
你有一个错字,operator
应该operate
在:
var x = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));
然后,您需要定义add
和multiply
成为 2 个函数,每个函数接受 2 个参数并返回 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
.
在这里,您可以创建两个以运算符命名的函数,您正在使用“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),operate(multiply, 4, 5));" 这里的操作员是操作。