Desde hace tiempo estoy intentando usar objetos JavaScript en mi código del lado del cliente, para evitar el caos que supone un montón de funciones javascript, puestas todas juntas sin ningún tipo de orden. La creación de objetos lo que permite es precisamente, ordenar mucho mejor el diseño para que sea más facil su mantenimiento y su reutilización posterior. La primera primera prueba real de esto ha sido crear un objeto Visor para un plugin de ermapper, que encapsule, algunas propiedades del visor (escala, ancho, alto). Es una aproximación inicial pero creo que voy por buen camino. Aquí hay un poco de código de ejemplo:
//objeto Visor
function Visor(oECW) {
//devuelve la escala de forma 1:XXXXX
function DameEscala() {
var escala = (9600 * (this.worldBRX - this.worldTLX)) / (this.Ancho * 2.54);
escala = "1:"+parseInt(escala+0.5)
return escala;
}
this.worldBRX = oECW.GetBottomRightWorldCoordinateX();
this.worldTLX = oECW.GetTopLeftWorldCoordinateX();
this.Ancho=oECW.GetViewWidth();
this.Alto=oECW.GetViewHeight();
this.DameEscala=DameEscala;
}
//creo el objeto pasandole la referencia al plugin
var visor = new Visor(principal.document.ECWView);
//alert(visor.Ancho +"; " + visor.Alto);
alert(visor.DameEscala());
Por cierto, si tenéis un navegador decente (es decir, cualquiera menos el explorer) como Firefox, o Maxthon, podéis probar directamente código JavaScript mediante una consola (debugger en el caso de Firefox, y Colector simple de texto en el caso de Maxthon). Es muy útil.