miércoles 11 de febrero de 2009

Alcance privado en Javascript

Esta técnica en Javascript permite hacer funciones y variables inaccesibles a otros scripts, muy a la manera como en lenguajes de Java, C# funciona la palabra reservada private:

El patrón es:
(function(){
/* código va aqui. */
})();
Ejemplo de uso, aqui se usa el objecto window para exportar una función (saludar):
(function(){
var msg = "Hola ";

window["saludar"] = function(aQuien){
return msg + aQuien;
}
})();

/* Esta linea fallará porque la variable msg no es accesible fuera de la función anonima */
alert(msg);

/* Muestra el mensaje Hola Heli Fernando Jerez */
alert(saludar("Helí Fernando Jerez"));

otro ejemplo de uso en el que no se modifica el objeto window sino retorna que se retorna un objeto con los elementos publicos:
var Saludar = (function(){
var msg = "Hola ";

return {
saludar : function(aQuien){
return msg + aQuien;
}
};
})();

/* Muestra el mensaje Hola Heli Fernando Jerez */
Saludar.saludar("Helí Fernando Jerez");

0 comentarios:

Publicar un comentario en la entrada