这是使用面向对象的方法用Javascript编写这个小型计算器的最佳方法吗?
我是OOJS新手。我做了一个简单的计算器。表单提交后,它创建一个对象并简单地显示结果。我想知道这是否是在OOJS中编写代码的最佳方式这是使用面向对象的方法用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
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新手。如果您可以分享如何改进此代码,这将非常有用。