JavaScript Tip #5–Nombres con espacio y acceso a elementos de un objeto

Sí, tiene un título largo, y es que resulta algo complicado describirlo usando una sola palabra (Y que se entienda), así que vamos con el ejemplo rápido.

var o = {
    ‘Other Func’: function () {
    }
};

En el código de ejemplo hemos creado un objeto al estilo JSON. Para estos casos, los nombres de referencia pueden ser escritos de forma tradicional o colocándolos entre comillas, como si fuese un string, y como tal, pueden contener espacios.

Estos espacios son permitidos desde el punto de vista de JavaScript aunque luego, cuando intentemos acceder a esa función, el espacio entre las palabras no nos lo hará fácil.

Si inspeccionamos el objeto podemos ver que la función existe y podría ser accesible:

image

Por supuesto, si hacemos lo siguiente:

o.Other Func();

Esto nos arrojará un error, por lo que necesitamos otra forma de poder acceder a la función.

Para esto, lo que nos provee JavaScript es un mecanismo que se asemejaría a lo que podemos entender como un array, por lo que podríamos usar una representación, un índice, para esta función basada en el nombre.

Si lo llevamos a otros lenguajes, posiblemente en C#, podríamos compararlo con un Dictionary. Un objeto compuesto por una colección de pares tipo llave/valor.

Entonces, para poder acceder a la función en cuestión:

o[‘Other Func’]();

Esto nos garantizará la ejecución de este tipo de funciones, o el acceso a cualquier elemento dentro del objeto que contemple, como en este caso, un espacio.

Posiblemente se pregunten el motivo de tener estas referencias con espacios. El caso es que existen algunas herramientas, en especial en el mundo del desarrollo de video juegos, que suelen crear estructuras para mapear imágenes y sprites creando objetos tipo JSON donde sus propiedades contienen estos espacios.

Por supuesto también, dentro del concepto dinámico de JavaScript, podríamos tener código que se cree en base a su ejecución y agregue este tipo de comportamiento.



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s