class Main {
foo() {
var one_parameter = function (arg1) {
console.log("1 parameter: " + arg1)
}
var two_parameter = function (arg1, arg2) {
console.log("1. parameter: " + arg1 + " 2. parameter: " + arg2)
}
var two_param_opts = function (arg1, arg2, opts) {
console.log("1. parameter: " + arg1 + " 2. parameter: " + arg2)
if(opts["test"]) {
console.log("option test given, " + opts["test"] );
}
}
switch(arguments.length) {
case 1:
return arguments[0] != undefined ? one_parameter(arguments[0]) : null;
case 2:
return two_parameter(arguments[0], arguments[1]);
case 3:
return two_param_opts(arguments[0], arguments[1], arguments[2]);
default:
return null;
}
}
}
obj = new Main();
obj.foo("test"); //output "1 parameter: test"
obj.foo("test", "test1"); //output "1. parameter: test 2. parameter: test1"
obj.foo("test", "test", {"test":"item"}); //output "1. parameter: test 2. parameter test
// option test given, item"