JavaScript: usare il pattern costruttore/distruttore per creare oggetti temporanei

JavaScript non dispone ancora dei metodi __construct() e __destruct() propri di PHP o almeno di metodi analoghi. Tuttavia possiamo implementare il pattern costruttore/distruttore degli oggetti con relativa semplicità.

Possiamo implementare la seguente soluzione:


var Obj = function() {
	   this.construct = function() {
			this.test = 1;
			this.prop = true;
		};
		
	   this.destruct = function() {
			var self = this;
			var key;
			
		for(key in self) {
			if(self.hasOwnProperty(key)) {
					delete(self[key]);
			}
		}
	};
	this.construct();
};

Il metodo contruct() viene invocato quando si crea un'istanza dell'oggetto e va ad inizializzare le sue due proprietà. Al contrario il metodo destruct() rimuove completamente le proprietà dall'oggetto utilizzando l'operatore delete:


var obj = new Obj();
	
console.log(obj.test + ' ' + obj.prop); // 1 true 
obj.destruct();
console.log(obj.test + ' ' + obj.prop); // undefined undefined 

Questo pattern è utile per creare oggetti temporanei le cui proprietà non devono avere valori statici durante l'esecuzione del codice.

Torna su