我该如何改进这个JavaScript类?
我是JavaScript新手,我知道我的代码很奇怪,我该如何解决这个问题?另外,如何在函数内调用函数?我想将所有值转换为数字或浮点数并调用解决方案。我该如何改进这个JavaScript类?
<script type="text/javascript">
function Math(){
var firstNumber = document.getElementById("firstnumber");
var secondNumber = document.getElementById("secondnumber");
this.add = function(){
var fN = Number(firstNumber.value);
var sN = Number(secondNumber.value);
return (fN + sN);
}
this.sub = function(){
var fN = Number(firstNumber.value);
var sN = Number(secondNumber.value);
return (fN - sN);
}
this.div = function(){
var fN = Number(firstNumber.value);
var sN = Number(secondNumber.value);
return (fN - sN);
}
this.mul = function(){
var fN = Number(firstNumber.value);
var sN = Number(secondNumber.value);
return (fN * sN);
}
}
var myNewMath = new Math();
</script>
的代码不是太坏在所有的初学者,如果有点重复。
为了简单起见,现在,我可能会做这样的事情,以避免重复调用Number(element.value)
:
function Calculator() { // NB: not "Math" - that's a standard object
var firstNumber = document.getElementById("firstnumber");
var secondNumber = document.getElementById("secondnumber");
function op1() {
return Number(firstNumber.value);
}
function op2() {
return Number(secondNumber.value);
}
this.add = function() {
return op1() + op2();
}
this.sub = function() {
return op1() - op2();
}
...
}
+1可能值得注意的是,在调用时你会想使用'new'。 – 2013-03-06 20:11:17
@MatthewBlancarte OP似乎已经知道这一点。 – Alnitak 2013-03-06 20:11:48
哦,哎呀,我没有看到他的代码转储滚动条。你是完全正确的。 :) – 2013-03-06 20:12:20
我们可能错过了HTML部分,了解你在做什么。这是一种计算器练习吗? – Sebas 2013-03-06 20:05:12
实际遇到的问题是什么? – benzonico 2013-03-06 20:06:05
JavaScript中已经有一个名字['Math'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math)。不要打破它。 – kojiro 2013-03-06 20:07:55