这是使用面向对象的方法用Javascript编写这个小型计算器的最佳方法吗?

这是使用面向对象的方法用Javascript编写这个小型计算器的最佳方法吗?,javascript,Javascript,我是OOJS新手。我做了一个简单的计算器。表单提交后,它创建一个对象并简单地显示结果。我想知道这是否是在OOJS中编写代码的最佳方式 let form = document.forms['cal-form']; form.addEventListener('submit', calculate); function calculate(e) { //prevent default form submission e.preventDefault(); //get

我是OOJS新手。我做了一个简单的计算器。表单提交后,它创建一个对象并简单地显示结果。我想知道这是否是在OOJS中编写代码的最佳方式


let form = document.forms['cal-form'];
form.addEventListener('submit', calculate);

  function calculate(e) {
    //prevent default form submission
    e.preventDefault();
    //get form values
    let num1 = parseInt(document.getElementsByTagName('input')[0].value);
    let num2 = parseInt(document.getElementsByTagName('input')[1].value);
    let op = document.getElementsByTagName('select')[0].value;

    //create object constructor function
    function Calculate(num1, num2, op){
      this.num1 = num1;
      this.num2 = num2;
      this.op = op;
    }

    Calculate.prototype.result = function() {
      let res;
      switch (op) {
        case 'add':
          res = this.num1 + this.num2;
          break;
        case 'sub':
          res = this.num1 - this.num2;
          break;
        case 'mul':
          res = this.num1 * this.num2;
          break;
        case 'div':
          res = this.num1 / this.num2;
          break;
        default:
          res= 'Error! No operation selected.';
      }
      return res;
    };

    //create an object
    let cal = new Calculate(num1, num2, op);
    //display result
    document.getElementById('result').innerHTML = cal.result();

  }
};

下面是一个使用类的答案:

类计算器{
加(a、b){
返回a+b;
}
分包(a、b){
返回a-b;
}
mul(a,b){
返回a*b;
}
分区(a、b){
如果(b==0)抛出新错误('div by 0不允许');
返回a/b;
}
}
常数a=12;
常数b=6;
const cal=新计算器();
const aplubs=cal.add(a,b);
常数AminusB=校准接头(a,b);
常数b=cal.mul(a,b);
常数AdivB=校准分区(a,b);
常量结果=[APLUBS、AMIUSB、AtimesB、AdivB];

控制台日志(结果)没有代码是不可能的,但即使有了代码,这听起来也太宽泛了,对SOedit来说是基于观点的:我已经发布了代码,这没有什么面向对象的,只是让函数调用变得更复杂。@Ry-我是OOJS新手。如果您可以分享如何改进此代码,这将非常有用。