JavaScript non ha il concetto di
namespace ma è possibile simularlo tramite gli oggetti in questo modo:
window.sgart = window.sgart || {};
creo un oggetto
sgart che se già esiste, ad esempio perché l'avevo già dichiarato in un altro file, mi ritorna se stesso oppure un oggetto vuoto se non esisteva. Il namespace lo aggiungo all'oggetto
window in modo che sia
globale.
28/03/2014 Attenzione, questo modo di dichiarare i namespace non è compatibile con Internet Explorer 8 e precedenti e con alcune vecchie versioni di Firefox. L'incompatibilità è dovuta al fatto che le variabili globali non coincidono con le proprietà dell'oggetto window. In questi browser la variabile globale sgart è diversa da window.sgart
Quindi il modo corretto di dichiarare un namespace è il seguente:
Al namespace posso aggiungere delle proprietà e delle funzioni:
sgart.contatore=10;
sgart.showContatore = function(){
alert(sgart.contatore);
};
Ricordati di aggiungere sempre il punto e virgola dopo la graffa della funzione
la funzione la posso richiamare con:
Con la stessa tecnica, avendo un
namespace, posso aggiungere, al suo interno, altri
namespace:
sgart.utility = sgart.utility || {};
ed aggiungere variabile e funzioni:
sgart.utility.showMessage = function(msg){
alert(msg);
};
sgart.utility.showMessage("ciao");