<HTML>
<body>
</body>
<script>
function Calculator() {
let methods = {
"-" : (a, b) => a - b,
"+" : (a, b) => a + b
};
//methods is an object which keeps key for operators
//and value to return the actual operation values
//each returns the result of operation that key(operator) does
this.calculate = function (str){
//calculate is one element in the function Calculator
//it takes the string and returns the value
//in the function element list is delimeted by , not ;
let split = str.split(" "),
a = +split[0],
op = split[1],
b = split [2]
if(!methods[op] || isNaN(a) || isNaN(b)) {
return NaN; // error handling
}
return methods[op](a,b);
}
this.addMethod = function(name, func){
methods[name] = func;
//this is how to add new key and ele to object
}
}
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);
</script>
</HTML>
<body>
</body>
<script>
function Calculator() {
let methods = {
"-" : (a, b) => a - b,
"+" : (a, b) => a + b
};
//methods is an object which keeps key for operators
//and value to return the actual operation values
//each returns the result of operation that key(operator) does
this.calculate = function (str){
//calculate is one element in the function Calculator
//it takes the string and returns the value
//in the function element list is delimeted by , not ;
let split = str.split(" "),
a = +split[0],
op = split[1],
b = split [2]
if(!methods[op] || isNaN(a) || isNaN(b)) {
return NaN; // error handling
}
return methods[op](a,b);
}
this.addMethod = function(name, func){
methods[name] = func;
//this is how to add new key and ele to object
}
}
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);
</script>
</HTML>
//the most important thing is to keep going
댓글
댓글 쓰기