javascript: different constructors for same type of object
is it possible to have more开发者_运维百科 than one constructors for a class in javascript? i.e. one with zero parameters, one with one, one with two, etc...
if so, how?
thanks!
No, Javascript does not support function overloading.
However, inside every function you have access to an arguments
object, which holds all the arguments supplied to the function, declared or not. You can simply look at it and decide what exactly you want to do in your constructor.
Bad, unrefined example:
function Foo() {
function singleParamConstructor(foo) {
...
}
function twoParamConstructor(foo, bar) {
...
}
switch (arguments.length) {
case 1 :
singleParamConstructor(arguments[0]);
break;
case 2 :
twoParamConstructor(arguments[0], arguments[1]);
break;
...
}
}
this might help: JavaScript constructor parameter types
精彩评论