miércoles 11 de febrero de 2009

Manejos de paquetes en Javascript

En un post pasado vimos como manejar el alcance privado en Javascript, esta funcionalidad es esencial para definir que es accesible y que no (encapsulamiento).

Los paquetes nos permiten a nosotros organizar funciones y variables y evitar colisión en nombres de la funciones. Los paquetes son muy comunes en otros lenguajes como ruby, java, c#, etc.

Nuestra herramienta para trabajar con paquetes en Javascript es el Objeto object, es decir el paquete prueba.urbanidad realmente es un objeto urbanidad dentro de un objeto prueba.

La siguiente función obtiene una paquete en javascript, El paquete raíz sera El Objeto window, si un paquete no existe la función lo creará, al final la función retorna el objeto que representa el paquete:

function obtener_paquete(paquete){
var ultimoPq = window;
/* convertimos la cadena en un lista de paquetes */
var partes = paquete.split(/\./);
/* recorremos el array de paquetes */
for(var i = 0; i < partes.length; i++){
var tmp = ultimoPq[partes[i]];
if(!tmp){
tmp = ultimoPq[partes[i]] = {};
}
ultimoPq =tmp;
}
return ultimoPq;
}
Aqui tenemos un uso de la función:
/* Obtengo el paquete prueba.urbanidad*/
obtener_paquete("prueba.urbanidad");
prueba.urbanidad.saludar = function(){
return "Hola";
};

/* Obtengo el paquete prueba.mala.urbanidad*/
obtener_paquete("prueba.mala.urbanidad");
prueba.mala.urbanidad.saludar = function(){
return "Adios";
};

/*Muestra el mensaje Hola */
alert(prueba.urbanidad.saludar());

/*Muestra el mensaje Adios */
alert(prueba.mala.urbanidad.saludar());

0 comentarios:

Publicar un comentario en la entrada