Leggendo questo articolo ho trovato uno snippet scritto per Prototype (ma che può essere facilmente integrato in qualsiasi tipo di applicazione), che fa uso del metodo Enumerable:inject, davvero utilissimo.
In pratica, permette di creare proprietà di oggetti complessi, semplicemente richiamando la funzione personalizzata namespace applicata all'oggetto String.
Vediamo un esempio pratico per capire meglio. Vogliamo creare :
var wrap = {
prop: {
inn: {
sub: "l'ultima proprietà "
}
}
}
// In questo modo abbiamo creato un oggetto che contiene un oggetto, che a sua volta ne contiene un altro e cosi via.
// Sembra complicato, ma non è raro avere l'occorrenza di creare qualcosa del genere.
// ora richiamiamo la proprietà e otterremo il valore "l'ultima proprietà ":
wrap.prop.inn.sub;
àˆ inutile dire che scritto cosi è molto incatenato e difficilmente leggibile. A questo proposito nasce la funzione namespace, che permette di svolgere le seguente operazione:
// il separatore di default è "." 'wrap.prop.inn.sub'.namespace(); // ora richiamiamo la proprietà e otterremo il valore "l'ultima proprietà ": wrap.prop.inn.sub;
Ovviamente è possibile divertirsi creando proprietà di oggetti esistenti e personalizzati (e utilizzando il separatore desiderato):
'MY_AWESOME_APPLICATION::util::DOM::dimensions'.namespace('::');
// true
'dimensions' in MY_AWESOME_APPLICATION.util.DOM;
Se vuoi aggiornamenti su Creare namespace con Prototype inserisci la tua email nel box qui sotto: