Frameworks aparte, javascript no es un lenguaje con el que deban definirse complejas clases con las que trabajar herencia, entorno, privacida, etc… Sin embargo el trabajo orientado a objetos siempre es mucho más ágil, ordenado y cómodo que la simple definición de funciones.
Por suerte para nosotros javascript permite entre su multitud de formas de definir objetos la notación literal. Este formato nos permite ir señalando directamente la commposición de un objeto sin haberle declarado la clase siquiera. En la práctica esta forma de escribir nos permite hacer desarrrollos separados con funciones que alteren las mismas variables dentro de un mismo objeto.
Básicamente, para escribir en notación literal hay que conocer dos formas de declarar los hijos y entender como igualar cualquier función a una valirable.
Definiendo propiedades/metodos:
Para eso simplemente encapsularemos la lista de proiedades/métodos entre los carácteres «{» y «}» y los separaremos por comas.
miObjeto = {
propiedad1 : "valor de la propiedad",
propiedad2 : 45,
metodoCualquiera : function (variable) {
alert(variable);
}
};
miObjeto.metodoCualquiera( miObjeto.propiedad1 );
// provocará un alert que diga "valor de la propiedad"
Definiendo arrays numéricos:
En este cas, y como en otros lenguajes, bastará con encapsular los valores por orden entre corchetes.
miObjeto = {
propiedad1 : "valor de la propiedad",
propiedad2 : 45,
metodoCualquiera : function (variable) {
alert(variable);
},
propiedadArray : [ 34 , 45, 38 ]
};
miObjeto.metodoCualquiera( miObjeto.propiedadArray[1] );
// provocará un alert que diga "45"
Dando produndidad al objeto
Por por último hay que saber que cualquiera de estos valores puede ser a su vez otro array u objeto, con lo que podemos crear nuestro árbol de objetos también directamente.
miObjeto = {
propiedad1 : {
valor1 : [ 34 , {
nombre : "ikhuerta",
valor : "cualquiera",
miFuncion : function (variable) {
alert(variable);
}
} ]
},
metodoCualquiera :
propiedadArray : [ 34 , 45, [3,14,16] ]
};
miObjeto.propiedad1.valor1[1].miFuncion( miObjeto.propiedadArray[2][1] );
// provocará un alert que diga "3"
3 respuestas a “javascript literal : definiendo objetos directamente”
Muchas gracias por este post. Me ha ayudado a entender este tema que para ser tan vital, me parece hay poco al respecto.
Me parece que no hay nada de malo si pones el ejemplo completo, pues aquellos que no conocen nunca lo haran por tu pagina, saludos..
pues mira que has ido a quejarte justo de un post lleno de ejemplos… ya me diras que les faltaba 🙂