jest to możliwe, aby mieć więcej niż jeden konstruktor dla klasy w javascript? tj. Jeden z zerowymi parametrami, jeden z jednym, jeden z dwoma, itd ...javascript: różne konstruktory dla tego samego typu obiektu
jeśli tak, jak?
dziękuję!
jest to możliwe, aby mieć więcej niż jeden konstruktor dla klasy w javascript? tj. Jeden z zerowymi parametrami, jeden z jednym, jeden z dwoma, itd ...javascript: różne konstruktory dla tego samego typu obiektu
jeśli tak, jak?
dziękuję!
Nie, JavaScript nie obsługuje przeciążania funkcji.
Jednak w każdej funkcji masz dostęp do arguments
object, która przechowuje wszystkie argumenty dostarczone do funkcji, zadeklarowane lub nie. Możesz po prostu na nią spojrzeć i zdecydować, co dokładnie chcesz zrobić w swoim konstruktorze.
Bad, niewybredny przykład:
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;
...
}
}
to może pomóc: JavaScript constructor parameter types
Co chcesz powinien być nazywany "polimorficzny funkcja-konstruktor". spójrz na http://www.highdots.com/forums/javascript/multiple-constructors-allowed-javascript-198415.html –
Możliwy duplikat [wzoru JavaScript dla wielu konstruktorów] (http://stackoverflow.com/questions/3220721/javascript-pattern-for-multiple-constructors) – Suma