Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Javascript module pattern con costruttore con argomenti

Come scritto su Javascript: the good parts, un modulo è una funzione o un oggetto che presenta una interfaccia ma nasconde il suo stato e la sua implementazione.

Ho infatti utilizzato il pattern module quando ho avuto la necessità di incapsulamento, cioè di avere un metodo di una classe che avesse una interfaccia pubblica ma nascondesse i dettagli della sua implementazione.

Oltre all’incapsulamento mi serviva avere un costruttore con argomenti, ho quindi introdotto anche esso nel codice che segue e che implementa il module pattern con costruttore.

function module(name) {
	this.name = name;
} 

module.prototype = (function() {
	var i = 0;

	function myPrivateFun() {
		console.log("private " + i++);
	}
	
	function myPublicFun() {
                myPrivateFun();
		console.log(this.name);
	}
	
	return {
		publicFun: myPublicFun
	};
	
})();

var m = new module("john");
m.publicFun(); // private 0 John

Il costruttore è definito nel modo usuale disponibile in Javascript.

Il pattern module è utilizzato nell’implementazione del prototype, dove abbiamo

  • privateFun che è una funzione privata, visibile solo da publicFun
  • publicFun che è una funzione pubblica, visibile esternamente
  • il return che restituisce un oggetto i cui membri sono visibili esternamente, e dove quindi inseriamo i metodi pubblici

Abbiamo utilizzato nel codice:

  • invocazione immediata delle funzioni
  • closures

Invocazione immediata delle funzioni

Detta in inglese IIFE (immediately invoked function expressions), l’invocazione Immediata Delle Funzioni, del tipo

(function() {
 })();

fa si che la funzione venga eseguita immediatamente, e che ne venga restituito il risultato mediante il return di cui sopra

Le closure

Le closure, chiusure in italiano, fanno sì che  che le funzioni definite in un certo scope continuino ad avere accesso alle variabili accessibili da quello scope anche quando la funzione più esterna che definiva quello scope è terminata. Nell’esempio si vede come si acceda alla variabile i anche quando la funzione più esterna è terminata.

The post Javascript module pattern con costruttore con argomenti appeared first on Just Think.



This post first appeared on Just Think, please read the originial post: here

Share the post

Javascript module pattern con costruttore con argomenti

×

Subscribe to Just Think

Get updates delivered right to your inbox!

Thank you for your subscription

×