jQuery: i vantaggi dell'OOP

Gran parte degli script in jQuery usano ancora un codice procedurale. Usare codice procedurale in un linguaggio basato sugli oggetti come JavaScript è un controsenso. In questo articolo vedremo come trasformare del codice jQuery procedurale in un codice orientato agli oggetti.

Namespace

La prima cosa da evitare è di usare jQuery in un contesto globale:


$(document).ready(function() {

	//...


});

In questo modo potrebbero sorgere conflitti con altre librerie. Meglio utilizzare una sandbox creata attorno all'oggetto jQuery:


(function($) {

	$(document).ready(function() {
	
		//...
	
	
	});


})(jQuery);

Variabili globali

Altra causa di conflitti sono le variabili globali, da evitare:


var slideshow = $('#slideshow'),
	button = $('#btn');

$(document).ready(function() {

	//...


});

Meglio utilizzare variabili locali o oggetti:


(function($) {

    var Elements = {
    	slideshow: $('#slideshow'),
    	button: $('#btn')
    };

	$(document).ready(function() {
	
		//...
	
	
	});


})(jQuery);

Funzioni

Quando il vostro codice è costituito da decine e decine di funzioni è chiaro che state ragionando per azioni o routine separate senza avere davanti a voi un quadro più generale.

Provate a raggruppare le funzioni per scopo e finalità e quindi ripensate il vostro codice in modo OO utilizzando gli oggetti:


// Esempio errato

$(document).ready(function() {

	funzione1();
	
	funzione2();
	
	funzioneN();


});

Ecco invece un esempio corretto:


(function($) {

    var APP = {
    
    	Elements: {
    	
    		// elementi DOM
    	
    	},
    	
    	Utils: {
    	
    		// metodi helper o di utility
    	
    	},
    	
    	fn: {
    	
    		// il core
    	
    	},
    	
    	init: function() {
    	
    		// metodo di inizializzazione
    	
    	}
    
    };

	$(document).ready(function() {
	
		APP.init(); // esegue tutto
	
	
	});


})(jQuery);

In questo modo non solo avete maggiore coerenza interna e una maggiore facilità di gestione, ma potete anche riutilizzare il vostro codice in altri progetti. Questi vantaggi sono tutti una conseguenza dell'OOP.

Torna su