JavaScript  »  Guide  »  Guida MooTools 

Le funzioni Core



Il "core" di MooTools è una componente fondamentale contenente funzionalità di base che vengono utilizzate e riutilizzate largamente in tutti gli altri file, intermedi ed avanzati. Le funzioni core, contrassegnate dal simbolo "$" iniziale, sono funzioni globali. Questo significa che possono essere utilizzate in qualsiasi punto all'interno della nostra applicazione senza problemi relativi allo scope.

Vediamo subito la lista completa di tutte le funzioni core offerte da MooTools:

$chk:permette di verificare se il valore passatole come parametro esiste o è pari a 0. In caso positivo restituisce true, altrimenti false.

	$chk(0);	// true
	$chk(false); // false
	

$clear: azzera il timeout e/o l'intervallo precedentemente impostati tramite i metodi Function::delay e Function::periodical.

$defined: restituisce true se il valore passatogli è definito, altrimenti restituisce false.

$arguments: crea e sostituisce una funzione che a sua volta restituisce l'argomento presente nella posizione indicata dal parametro di ingresso (di valore intero).

	// third diventa una funzione che restituisce l'argomento presente nella posizione 2
	var third = $arguments(2);
	
	// alert "ancora ciao"
	alert(third("ciao", 24, "ancora ciao", [10, 20]));
	

$empty: restituisce una funzione vuota. Spesso viene utilizzata per creare funzioni (vuote) nelle opzioni dei costruttori Class che rappresentano gli eventi (come onStart, onComplete, e cosi via).

$lambda: crea e restituisce una funzione che ha a sua volta il compito di restituire il valore (di qualsiasi tipo) che passiamo come argomento.

	// usata in questo modo $lambda crea e restituisce una funzione che restituisce false, 
	// rendendo i link "myLinks" non cliccabili
	myLinks.addEvent('click', $lambda(false));
	

$extend: copia tutte le proprietà del secondo oggetto (secondo argomento) all'interno del primo oggetto (primo argomento), che viene restituito nella forma "estesa". Le proprietà aventi uguali keyword vengono sovrascritte.

	var first = { first: 'a', second: 'b' };
	var second = { first: 'c', third: 'd'};
	
	// first diventa: { first: 'c', second: 'b', third: 'd'}
	$extend(first, second);
	

$merge: "fonde" tutti gli oggetti passati come argomenti in modo ricorsivo e restituisce l'oggetto risultante, senza modificare gli oggetti originali.

	var obj1 = {a: 0, b: 1};
	var obj2 = {c: 2, d: 3};
	var obj3 = {a: 4, d: 5};
	
	// merged è pari a: {a: 4, b: 1, c: 2, d: 5}
	var merged = $merge(obj1, obj2, obj3);
	

$each: permette di iterare su oggetti che normalmente non sono array iterabili. Questa funzione accetta tre argomenti. Il primo rappresenta il nostro oggetto su cui vogliamo iterare, il secondo è una funzione che viene eseguita per ogni elemento del nostro oggetto e il terzo è l'oggetto che assume il valore "this" all'interno della funzione.

	var myObj = {first: "Sunday", second: "Monday", third: "Tuesday"};
	
	$each(myObj, function(value, key) {
		alert("The " + key + " day of the week is " + value);
	});
	

$pick: restituisce il primo argomento definito tra quelli passati.

	// restituisce 'ciao'
	$pick(false, false, 'ciao', 'ancora ciao');
	

$random: restituisce un valore random intero compreso tra il dato intervallo.

	// restituisce un numero random compreso tra 2 e 90
	$random(2, 90);
	

$splat: converte l'argomento passato in un array (se non lo è già) e lo restituisce.

	// restituisce ["ciao"]
	$splat("ciao");
	

$time: restituisce il tempo corrente sotto forma di timestamp.

$try: accetta un numero variabile di funzioni come argomenti e restituisce il valore restituito dalla prima funzione che viene portata correttamente a termine. Se tutte le funzioni falliscono restituisce null.

	var result = $try(function(){
		return oggetto.inesistente;
	}, function(){
		return oggetto.che.nonesiste;
	}, function(){
		return false;
	});
	
	// result = false
	

$type: restituisce sotto forma di stringa il tipo dell'oggetto passato in ingresso. Oltre ai normali valori come 'array', 'string', eccetera, questa funzione identifica tipi più specifici e particolari come 'collection', 'class', 'textnode', 'whitespace' e cosi via.

		$type('ciao'); // 'string'
		$type(Fx);	   // 'class'
	

Determinare il tipo di browser in uso

Un altro strumento globale che abbiamo a disposizione nella parte core è l'Hash (vedremo nelle successive lezioni la tipologia e le caratteristiche di questo costruttore) Browser. Tramite la sua proprietà Engine, è possibile effettuare dei controlli sul motore di rendering utilizzato dal browser per verificare il tipo di browser che sta eseguendo la nostra applicazione. Vediamo un esempio:

// true se il browser è IE7
if(Browser.Engine.trident5) { ... }

// true se il browser è Firefox
if(Browser.Engine.gecko) { ... }

// true se il browser è Safari 3
if(Browser.Engine.webkit420) { ... }

Ovviamente la classificazione è molto dettagliata, per questo vi rimando alla pagina del documentazione ufficiale dove trovate tutti i possibili valori utilizzabili. L'Hash Browser inoltre, possiede anche le keywords "Features" e "Platform" per identificare i plug-in abilitati e il tipo di sistema operativo in uso.

Conclusione

Queste sono tutte le funzioni "core" offerte da MooTools che possiamo utilizzare in qualsisiasi posizione nelle nostre applicazioni. Nella prossima lezione vedremo come viene utilizzato e come utilizzare il costruttore "factory" attorno a cui ruota tutto il framework: Class.

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