Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Il costruttore Hash

Superare i limiti imposti dal costruttore Object del Javascript nativo
Superare i limiti imposti dal costruttore Object del Javascript nativo
Link copiato negli appunti

Il costruttore Hash è una delle classi native non-standard introdotta da MooTools. Le sue funzionalità permettono di superare i limiti imposti dal costruttore Object del Javascript nativo (ricordate, MAI toccare l'oggetto Object.prototype, per questo è nato l'oggetto Hash.prototype!) e "mappare" quindi un normale oggetto.

Immaginate un Hash come una sorta di array sul quale è possibile iterare e compiere tutte quelle interessanti operazioni di estensione e combinamento, ma al posto di indici e valori abbiamo le accoppiate keyword e value tipiche degli oggetti.

La classe Hash accetta un solo parametro che è l'oggetto (o un altro Hash) da mappare e ne restituisce l'istanza. Con quest'ultima possiamo compiere le più svariate operazioni: dai semplici setting e getting di proprietà e valori fino alle diverse iterazioni. Vediamo un esempio:

// creiamo un Hash
var hash = new Hash({
	color: 'blue',
	getColor: function() {
		return this.color;
	}
});

// usiamo i suoi metodi
// true, esiste la proprietà color
hash.has('color');

// setta una nuova proprietà
hash.set('otherColor', 'green');

// ottieni le keywords
var keys = hash.getKeys();

// ottieni i valori
var values = hash.getValues();

Ed ora passiamo alle iterazioni (i metodi each e map sono davvero molto simili ai rispettivi offerti dalla classe Array):

// creriamo un nuovo Hash
var hash = new Hash({first: 'red', second: 'blue', third: 'green'});

// effettua gli alert per ogni elemento: 'The first is red', 'The second is blue' e cosi via
hash.each(function(value, key){
    alert('The ' key + " is: " + value);
});

// operazione di "mapping" su di un nuovo hash
var double = new Hash({a: 1, b: 2, c: 3}).map(function(item, index){
    return item * 2;
}); 

// double è ora uguale a {a: 2, b: 4, c: 6}

Da questi esempi risulta chiaro come sia semplice iterare ed alterare la struttura di un Hash, come se si trattasse di un array "speciale".

Hash interni

Sono molti gli hash usati internamente a MooTools per adempiere ai più svariati compiti, data la loro elevata flessibilità. Gli Hash Element.Properties, Element.Attributes, Element.Events ed Element.Styles controllano le varie caratteristiche degli elementi, mentre l'Hash Browser permette di identificare, tramite la sua proprietà "Engine" il browser correntemente in uso. Ancora troviamo l'Hash Selectors.Pseudo che permette di creare selettori personalizzati, l'Hash JSON e molti altri ancora.

Conclusione

Come abbiamo potuto vedere, lavorare e iterare su di un oggetto non è più impossibile o complicato, grazie alla classe Hash. Non dimentichiamo inoltre che l'oggetto prototype di Hash contiene molti altri metodi utilissimi oltre a quelli presentati in questa lezione: extend, combine, filter ed every (simili ai cicli di iterazione studiati nella lezione dedicata al costruttore Array) e altri ancora. Ecco a voi il link alla pagina della documentazione ufficiale dove potete trovare la lista completa.


Ti consigliamo anche