我有不同的函数可以运行非常简单的数学方程。我想要一个函数,能够根据单独设置的变量调用这些函数中的任何一个。我似乎无法让函数将变量识别为“函数”输入。
在控制台中运行时,这给出了我期望的结果:
function operate(whatOp, a, b){
console.log(whatOp(a, b)}
所以输入...
operate(divide, 3, 4)
...在控制台中返回 0.75。
但是,如果我尝试通过让 WhatOp 来自变量来调用它,它就不起作用......
let firstNumber = "999";
let secondNumber = "333";
let operation = "divide";;
operate(operation, firstNumber, secondNumber)
...在控制台中返回未定义。
我如何让它基于此工作?我正在使用一个按钮来设置变量,但这正在工作并返回我想要的值,所以我认为这与我调用变量的方式有关?
最佳答案
你可以这样做:
function add(a, b) {
return a + b;
}
function rest(a, b) {
return a - b;
}
function divide(a, b) {
return a / b;
}
function operate(whatOp, a, b){
const operations = {
add,
rest,
divide
};
return operations[whatOp](a, b);
}
function add(a, b) {
return a + b;
}
function rest(a, b) {
return a - b;
}
function divide(a, b) {
return a / b;
}
function operate(whatOp, a, b){
const operations = {
add,
rest,
divide
};
return operations[whatOp](a, b);
}
console.log(operate('add', 1, 2));
console.log(operate('rest', 2, 1));
console.log(operate('divide', 4, 2));
关于javascript - 更改 javascript 中函数内调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57610400/