JavaScript  »  Articoli  »  MooTools 

MooTools: usare gli Hash

di: Riccardo Degni     10 Dicembre 2007

Uno dei componenti più utili ed interessanti di MooTools è sicuramente il file Hash.js (http://docs.mootools.net/Plugins/Hash.js). Purtroppo spesso le sue funzionalità vengono sottovalutate o prese sotto gamba. Per sottolineare questo fatto, nella prossima release di MooTools la classe Hash verrà convertita da semplice plug-in in una classe nativa, proprio come Array, String, Element e cosi via.

Per questi importanti motivi ho deciso di dedicare un articolo al funzionamento e all'utilizzo di questa potente classe. Per rendere la panoramica ancora più completa, consiglio la lettura dell'articolo The Hash sul blog ufficiale di MooTools: espone alcune nuove caratteristiche che compariranno con la nuova versione.

Utilizzo di base

Gli hash vengono utilizzati principalmente per "mappare" un oggetto, ovvero per creare una sorta di wrapper attorno ad esso che servirà per compiere operazioni molto interessanti.

Iniziamo con la descrizione del costruttore Hash: esso accetta un solo parametro, che è l'oggetto descritto sopra. I metodi che questo costruttore supporta sono i seguenti:

  • get - restituisce il valore della proprietà specificata;
  • set - aggiunge una nuova proprietà al nostro hash che assumerà il valore specificato oppure sovrascriverà quella precedentemente impostata;
  • hasKey - controlla la presenza di una proprietà all'interno dell'hash. Restituisce true se è presente, altrimenti false;
  • remove - rimuove la proprietà specificata dal nostro hash;
  • each - richiama una funzione per ogni proprietà del nostro hash (simile al metodo each applicabile sugli Array e sulle collezioni di elementi);
  • extend - estende l'hash con nuove proprietà/valori ricavate dall'oggetto che viene passato come parametro. Se sono già presenti nell'hash originale vengono sovrascritte (simile alla funzione $extend, di cui usa le funzionalità);
  • merge - fonde l'hash con molteplici oggetti (simile alla funzione $merge, di cui usa le funzionalità);
  • empty - rimuove, o meglio, svuota l'hash da tutte le sue proprietà;
  • keys - restituisce un array che contiene tutte le chiavi (le proprietà) dell'hash;
  • values - restituisce un array che contiene tutte i valori (ricavati dalle proprietà) dell'hash.

Vediamo ora un semplice utilizzo di Hash per effettuare il mapping di un oggetto:

var hash = new Hash({ 'a': 'value of a', 'b': 'value of b', 'c': 'value of c', 'd': 'value of d' }); // otteniamo il valore della chiave 'b': 'value of b' hash.get('b'); // impostiamo una nuova proprietà hash.set('e', 'value of e'); // impostiamo un nuovo valore per una vecchia proprietà hash.set('b', 'new value of b'); // controlliamo se ha la chiave c: true hash.hasKey('c');

Alcuni potrebbero obiettare che si tratta solamente di una normale dichiarazione di un oggetto solo più elegante, ma non è cosi.

Una volta che abbiamo dichiarato il nostro Hash, possiamo usufruire del potente metodo each, che permette di iterare attraverso tutte le sue proprietà, diversamente da un normale oggetto:

hash.each(function(value, key) { alert('Il valore della proprietà ' + key + ' è ' + value); }); // o ancora, preleviamo un valore e inseriamolo in un elemento hash.each(function(value, key) { if(key == 'b') $('myElement').setHTML("<b>" + value + "<b>"); })

Guide JavaScript

Canvas, guida pratica

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

Guida jQuery UI

Creare siti ricchi e dinamici con jQuery UI, il progetto ufficiale...

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 Google AdWords Base

27 Febbraio 2012 a Milano
Disponibilità: 7 Posti

Corso Webmaster base

12 Marzo 2012 a Milano
Disponibilità: 6 Posti

Corso JQuery e Ajax per Webmaster

19 Marzo 2012 a Milano
Disponibilità: 7 Posti

Corso Webmaster base

20 Febbraio 2012 a Roma
Disponibilità: 7 Posti

Corso Google AdWords Base

28 Marzo 2012 a Roma
Disponibilità: 7 Posti