ES5
function Add() {
function zero() {
return 10;
}
function one(num) {
return num+10;
}
function two(num1,num2) {
return num1+num2;
}
this.add=function () {
var len=arguments.length;
let ret=0;
switch(len){
case 0:
ret=zero();
break;
case 1:
ret=one(arguments[0]);
break;
case 2:
ret=two(arguments[0],arguments[1]);
break;
}
return ret;
}
}
var A=new Add();
console.log(A.add(23,45));
console.log("---------------------");
ES6
class Add2{
add(){
let len=arguments.length;
let ret=0;
switch(len){
case 0:
ret=this.zero();
break;
case 1:
ret=this.one(arguments[0]);
break;
case 2:
ret=this.two(arguments[0],arguments[1]);
break;
}
return ret;
}
zero() {
return 10;
}
one(num) {
return num+10;
}
two(num1,num2) {
return num1+num2;
}
}
let A2=new Add2();
console.log(A2.add(12,23));
console.log(A2.add(34));
console.log(A2.add());