Нет, Javascript не поддерживает перегрузку функций.
Однако внутри каждой функции у вас есть доступ к arguments
объекту , который содержит все аргументы, предоставленные функции, объявленные или нет. Вы можете просто посмотреть на это и решить, что именно вы хотите сделать в своем конструкторе.
Плохой, неопределенный пример:
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;
...
}
}