回到课程
本资料仅提供以下语言版本:English, Русский。请 帮助我们 将其翻译为 简体中文 版本。

创建一个可扩展的 calculator

重要程度: 5

创建一个构造函数 Calculator 创建可扩展的 calculator 对象。

该任务由两部分组成。

  1. 首先,实现 calculate(str) 方法,“NUMBER operator NUMBER”(空格分隔),其格式为“1 + 2”,并返回结果。所以要实现加+和减-

    用法示例:

    let calc = new Calculator;
    
    alert( calc.calculate("3 + 7") ); // 10
  2. 然后添加 calculate 新操作的方法 addOperator(name, func)。它需要运算符 name 和实现它的双参数函数 func(a,b)

    例如,我们添加乘法*,除法/和求幂**

    let powerCalc = new Calculator;
    powerCalc.addMethod("*", (a, b) => a * b);
    powerCalc.addMethod("/", (a, b) => a / b);
    powerCalc.addMethod("**", (a, b) => a ** b);
    
    let result = powerCalc.calculate("2 ** 3");
    alert( result ); // 8
  • 此任务中没有括号或复杂的表达式。
  • 数字和运算符用一个空格分隔。
  • 添加错误处理。

打开带有测试的沙箱。

  • 请注意如何存储方法。它们只是添加到内部对象。
  • 所有测试和数值转换都在 calculate 方法中完成。将来它可能会扩展到支持更复杂的表达式。

使用沙箱的测试功能打开解决方案。