Javascript Orientado a Objetos sgun Buzu -Object Literal Notation

Siguiendo con la construcción de los objetos, esta ocasión hablaré sobre otra forma muy común de construir objetos. Me refiero a Object Literal Notation (OLN).

OLN es una forma de escritura que se popularizó gracias al surgimiento de JSON, un “formato ligero para el intercambio de datos” (Wikipedia). OLN es una forma de escribir javascript, o más concreto, objetos en javascript usando un conjunto de pares conocidos como propiedad y valor. Para construir un objeto usando OLN es suficiente con hacer lo siguiente:

var Buzu = {
     nombre: 'buzu',
     hablar: function(){
          alert('Amor, paz, respeto y libertad -Revolución');
     }
}

Lo que acabamos de hacer es crear un objeto similar al que creamos en la entrega anterior de esta serie. Podrás ver que esta forma de crear objetos es mucho más compacta. Sin embargo, tiene sus desventajas. Una de ellas es que los objetos que se crean de esta manera no son fácilmente instanciables, por lo que se puede decir que no son la mejor opción si se piensa en re-usar los objetos al mismo tiempo o tener varias instancias del mismo objeto al mismo tiempo.

Este tipo de escritura esta siendo usado últimamente para crear una especie de pseudonamespaces para asegurar que diferentes librerías no “choquen” entre si causando errores. El uso de esta técnica no es muy difundido aun especialmente entre la comunidad latina de desarrolladores o programadores en javascript, sin embargo es cada vez más usada.

Para lograr esa especie de namespaces simplemente se necesita “encerrar” todas nuestras funciones dentro de una función auto ejecutable, es decir, una función que se ejecuta inmediatamente después de haber sido leída. Ej:

(function(){
     if(!window.b){window['b'] = {} }
     function alertar(que){
          alert(que)
     }
     window['b']['alertar'] = alertar;
}
)();

De esa manera para poder acceder a la función alertar, es necesario poner la siguiente instrucción:


b.alertar('hola mundo');

De este modo aun que alguna otra librería que se esté usando contenga una función llamada alertar, será muy difícil que esta genere problemas con la nuestra.

Esta técnica es especialmente útil si se quiere distribuir una librería o trabajar con varias librerías en el mismo proyecto.

En la siguiente entrega del esta serie aplicaremos lo que hemos aprendido hasta ahora creando una librería pequeña a la cual podrás ir agregando más funciones conforme las valla necesitando. Esa será probablemente la última entrega de esta serie y explicaré temas de suma importancia, especialmente la diferencia entre métodos públicos, privados y privilegiados. Será una entrega larga y con mucha info.

Hasta entonces!

6 thoughts on “Javascript Orientado a Objetos sgun Buzu -Object Literal Notation

  1. Personalmente no uso frameworks. He oído que son muy buenos y demás, pero prefiero hacer todo a mano. No he encontrado hasta el momento un proyecto que requiera un framework. Lo que si uso es una librería que yo mismo he creado en la que tengo mis funciones más recurrentes como event handlers y cosas de ese estilo. Que opinas tú de los frameworks?

  2. Hola.
    Muy buena aportacion.
    Entre otras cosas, en este post ablas de instanciar objetos OLN.
    Cual es la manera de istanciarlos.
    Saludos.
    Gracias.

    • Objetos construidos con OLN no son instanciables. No hay tal cosa ya que con OLN creas un objeto, no una “clase”
      Hay muchas cosas interesantes que se podrían hacer, por ejemplo registrar el mismo objeto pero con diferentes atributos en algún otro objeto, esto nos daría la apariencia de que tenemos varias instancias y cada una de ellas es independiente pero en la realidad seguiriamos teniendo un solo objeto. Otra cosa que puedes hacer es meter un objeto en OLN dentro del prototipo de un objeto creado con la función constructora. Realmente son muchas las posibilidades, pero yo prefiero solo usar los objeto tal como son sin meterme en complicaciones. Muchas veces si estas haciendo algo como lo que sugiero en el comentario hay muchas probabilidades que estés haciendo algo mal o queriendo aplicar una técnica cuando otra sería más adecuada.
      A finales del año pasado (2010) tuve la oportunidad de trabajar en un proyecto en donde apliqué algunos conceptos nuevos que aun me faltan por documentar en el blog. Estos conceptos complementan muchisimo lo que se aprendió en esta serie de OOP.

Comments are closed.