è possibile avere più di un costruttore per una classe in javascript? cioè uno con parametri zero, uno con uno, uno con due, ecc ...javascript: diversi costruttori per lo stesso tipo di oggetto
se sì, come?
grazie!
è possibile avere più di un costruttore per una classe in javascript? cioè uno con parametri zero, uno con uno, uno con due, ecc ...javascript: diversi costruttori per lo stesso tipo di oggetto
se sì, come?
grazie!
No, JavaScript non supporta l'overloading di funzioni.
Tuttavia, all'interno di ogni funzione è possibile accedere a uno arguments
object, che contiene tutti gli argomenti forniti alla funzione, dichiarati o meno. Puoi semplicemente guardarlo e decidere cosa esattamente vuoi fare nel tuo costruttore.
Bad, ad esempio non raffinato:
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;
...
}
}
C'è qualche altro modo oltre a questo? – FranXh
Bene, * no *, Javascript non supporta * sovraccarico di funzione *. Ci sono probabilmente innumerevoli schemi di progettazione con i quali è possibile evitare di entrare in una situazione in cui si pensa che sia necessario sovraccaricare le funzioni per cominciare. – deceze
questo potrebbe aiutare: JavaScript constructor parameter types
Ciò che si vuole è chiamato "polimorfica funzione-costruttore". guardare http://www.highdots.com/forums/javascript/multiple-constructors-allowed-javascript-198415.html –
Possibile duplicato di [modello JavaScript per più costruttori] (http://stackoverflow.com/questions/3220721/javascript-pattern-for-multiple-constructors) – Suma