javascript - 更改 javascript 中函数内调用的函数

标签 javascript

我有不同的函数可以运行非常简单的数学方程。我想要一个函数,能够根据单独设置的变量调用这些函数中的任何一个。我似乎无法让函数将变量识别为“函数”输入。

在控制台中运行时,这给出了我期望的结果:

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/

相关文章:

javascript - 如何允许用户单击标题部分的下一步按钮?

javascript - Jquery页面重新加载错误

javascript - 第一次加载时只加载页面的一部分

javascript - 如何按 ReactJS Material 表中嵌套对象中的值进行分组?

javascript - AngularJS RequireJS 加载 Angular 文件上传

javascript - PostCSS:如何根据当前规则中的声明有条件地添加新规则?

javascript - 使用 JavaScript 的 x64 或 x32?

javascript - 如何不在纯 HTML5 客户端应用程序上暴露应用程序 secret 和 key

输入字段的 Javascript 设置值

javascript - 如何配置 Eslint 以忽略 Vue Cli 3 项目中的特定错误