JSFiddle - React, Tailwind, and code Playground
by Andrey
JavaScript
function сalculator (firstNumber) {
var res;
var e = new Error;
if(typeof firstNumber !== 'number'){
e.message = 'Первый аргумент не число';
e.name = 'firstNumber';
throw e;
};
var calc = {
sum: function(){
var res = firstNumber;
for(i=0; i<arguments.length; i++){
res += arguments[i];
};
return res;
},
dif: function(){
var res = firstNumber;
for(i=0; i<arguments.length; i++){
res -= arguments[i];
};
return res;
},
div: function(){
var res = firstNumber;
for(i=0; i<arguments.length; i++){
res /= arguments[i];
if(typeof arguments[i] !== 'number'){
e.message = 'Not a number'
e.name = 'second not a number';
}
else if(arguments[i] === 0){
e.message = 'infinity'
e.name = 'div by null';
throw e;
}
};
return res;
},
mul: function(){
var res = firstNumber;
for(i=0; i<arguments.length; i++){
res *= arguments[i];
};
return res;
}
};
return calc;
};
try {
var myCalc = сalculator('sd');
console.log(myCalc.sum(2, 3, 5));
console.log(myCalc.dif(2, 3, 5));
console.log(myCalc.div(0, 3, 5));
console.log(myCalc.mul(2, 3, 5));
}
catch(e){
console.log(e.message);
};