Attuazione metodi di overload

Si desidera implementare i metodi di overload nel codice JavaScript. Quando un metodo viene assegnato a qualsiasi oggetto, non vi può essere una sola istanza di tale proprietà. Non è possibile in JavaScript per assegnare più lo stesso proprietà denominate. Ad esempio, il seguente codice non funzionerà.

 Fonte: / website / ROOT / articles ajax / javascript / overloaded.html var cls = new Object (); cls [ "metodo"] = function () (info ( "method1", "ciao");) cls.method (); cls [ "metodo"] = function () (info ( "method2", "ciao");) cls.method ();
  

Nel codice di esempio, vi sono due incarichi alla proprietà metodo. Il metodo cls.method è chiamato due volte, e per ogni chiamata l'attuazione funzione chiamata è l'ultimo valore di assegnazione. Il codice è banale e lo scopo di illustrare che non è possibile l'overload di un metodo per l'assegnazione di esso. Sovraccarico di un metodo è utile in situazioni in cui un numero variabile di parametri stanno per essere chiamato un metodo. Poiché non vi sono dichiarazioni di tipo, i metodi di overload può variare del numero di parametri. La logica utilizzata è che se il metodo viene chiamato con cinque parametri, quindi un metodo di overload che i processi di cinque parametri saranno chiamati. Se il metodo di overload non esiste, l'implementazione di default che è stato inizialmente assegnato alla proprietà sarà utilizzato. SoluzioneL'attuazione del metodo di overload è il seguente.

 Fonte: / website / root / scripts / jaxson / Common.js overload: la funzione (ad esempio, funcIdentifier, newFunc) (var overloadedPrototype = function () (var embeddedFunc = __embedded; overloadedFunc var = __newFunc; if (arguments.length == __paramCount) ( overloadedFunc.apply (this, arguments);) else if (typeof (embeddedFunc) == "function") (embeddedFunc.apply (this, arguments);)) origFunc var; if (! esempio [funcIdentifier]) (origFunc = function () ();) else (origFunc = esempio [funcIdentifier];) esempio [funcIdentifier] = Generics.expand (overloadedPrototype, (__embedded: origFunc, __newFunc: newFunc, __paramCount: ParamCount (newFunc)));),

In fase di attuazione, generici JavaScript sono utilizzati per espandere la funzione overloadedPrototype. Ma ha aggiunto di questa espansione è una variante non utilizzati in precedenza. Guardate l'identificatore __paramCount. Se l'identificatore è riferimenti incrociati, poi __paramCount quando si è espansa faranno riferimento un valore numerico. Ciò significa che la funzione sarà estesa hard-coded, ma perché vengono utilizzati farmaci generici JavaScript, questa non è una brutta cosa. La performance sarà più veloce perché non vi è alcuna necessità di calcolare il numero di parametri che la funzione overloadedFunc ha. Per utilizzare il metodo di overload, il codice utilizzato è il seguente:

FunctionNoParam function () () function FunctionOneParam (param) (info ( "FunctionTwoParam", "Param =" + param);) function FunctionTwoParam (param1, param2) (info ( "FunctionTwoParam", "param1 =" + param1 + "param2 = "+ param2);) var cls = new Object (); cls.value =" originale "; cls.example = function () (info (" default "," ciao ");) ops.overloaded (cls," ad esempio ", FunctionNoParam); ops.overloaded (cls," esempio ", FunctionOneParam); ops.overloaded (cls," esempio ", FunctionTwoParam); cls.example (" un esempio param "); cls.example (" param prima "," param secondi ");

Tre sono le funzioni definite: FunctionNoParam, FunctionOneParam, e FunctionTwoParam. Queste funzioni servono come sovraccarico funzioni con un numero variabile di parametri. La variabile CLS è un oggetto generico JavaScript senza metodi o parametri. Il valore del membro di dati viene assegnato dinamicamente per il metodo di default. Dopo il default è stato assegnato, l'esempio metodo è sovraccaricato con le tre funzioni in overload utilizzando la funzione ops.overloaded. Una volta che i metodi sono stati sovraccaricati, possono essere chiamati con un numero variabile di parametri. I metodi di overload, per esempio, poi in sequenza trovare il metodo corretto per chiamare. Nell'attuare metodi di overload, di tenere i seguenti punti in mente:

• Il metodo di overload JavaScript generici espansione era simile a quello mostrato in precedenti articoli. La torsione solo supplementare è stato l'hard-coding del conte parametro. Utilizzo di pratiche di programmazione tradizionali, non avrebbe fatto, ma utilizzando JavaScript

farmaci generici è banale e raccomandati.

• Quando l'overloading dei metodi, è necessario fornire una implementazione di default, se volete.

• È necessario un sostegno non solo il numero di parametri per determinare ciò che si desidera chiamare, ma anche il tipo. Questo è un caso molto più comune utilizzo, dopo tutto. Un metodo che accetta una stringa potrebbe essere sovraccaricato da una variante che accetta una matrice e invita la versione di stringa per ogni elemento.

• metodi di overload non è possibile in base al tipo, ma è fatta in base al numero di parametri.

• È possibile implementare i tipi di overload che il filtro su tipi specifici. Per esempio, è possibile implementare un filtro di overload metodo che interroga la presenza di un valore specifico oggetto. Per fare questo, è possibile combinare il proxy con gli articoli di overload. Articoli di contenuto dinamico Wapplicazioni in edilizia gallina Ajax, si sta creando interfacce utente che interagiscono con i dati sul lato server. La costruzione di una interfaccia utente include molteplici aspetti che possono essere considerati indipendenti. Per esempio, richiede un certo numero di elementi in un form. Devi inserire questi elementi correttamente e li verificherà. L'immissione e la verifica può essere considerato indipendente, perché la verifica può procedere a prescindere da come gli elementi sono collocati, e viceversa. Questo articolo non tenta di scavare attraverso i dettagli di come posizionare gli elementi in modo che l'usabilità è corretta. Invece, questo articolo tramite gli argomenti degli scavi che si concentrano su algoritmi, come elemento di verifica, HTML generazione finestra di dialogo, e la generazione di layout dinamico.

un articolo presentato da Sonja Lande


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo è "Implementazione di metodi di overload" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 476 users browsing the articles directory