JavaScript  »  Guide  »  Guida MooTools 

Il costruttore Hash



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.

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti