Objetos Javascript

Definimos como objeto, una entidad con una serie de propiedades que definen su estado y unos métodos (funciones) que actúan sobre esas propiedades.

La forma de acceder a una propiedad de un objeto es la siguiente:

nombreobjeto.propiedad

También se puede referir a una propiedad de un objeto por su índice en la creación. Los índices comienzan por 0:

casa[0]=casa.localidad

casa[1]=casa.superficie

casa[2]=casa.precio

Vamos a crear un objeto con una serie de propiedades. La forma de crear un objeto es la siguiente:

-Crear una función constructora

function casa(localidad,superficie,precio) {

this.localidad=localidad

this.superficie=superficie

this.precio=precio

}

Instanciar objetos con "new"

casa1=new casa("Pamplona",90,15000000)

casa2=new casa("Bilbao",110,23000000)

Dos observaciones importantes:

-Gracias a new creamos nuevos objetos con las propiedades de los ya creados.

"this" hace referencia al propio objeto.

-A un objeto se le pueden seguir añadiendo propiedades tras ser definido, aunque es una práctica que no se aconseja, pues todos los objetos ya creados hasta entonces añaden también esa propiedad con valor nulo. Para ello se utiliza la palabra prototype:

casa.prototype.año=null

casa.año="1980"

Capítulo anterior:
Literales Javascript

Capítulo siguiente:
Métodos Javascript

One Comment

  1. Javi

    Cuando dices:

    “Vamos a crear un objeto con una serie de propiedades. La forma de crear un objeto es la siguiente: ”

    y luego procedes a añadir el código necesario; en realidad estás creando una clase, no un objeto, y una clase es el “molde” genérico del que irán tomando forma objetos instanciados a partir de esa clase. Después correctamente escribes que se procede a instanciar un objeto. Pero sería recomendable que corrigieras la frase que he puesto entre comillas y especificar que lo que se crea es una clase. Deslices en la redacción del texto pueden llevar a gran confusión a aquellos a quienes precisamente más interesa este tipo de tutoriales, que son los que no saben todavía programar demasiado en javascript y se les escapa las diferencias sutiles pero fundamentales que hay entre conceptos como por ejemplo el de clase y objeto.

    Naturalmente javascript permite crear objetos directamente sin necesidad de instanciar a partir de ninguna clase, mediante la notación de claves ( { ). Pero serán objetos obviamente únicos (sin provenir de una clase “molde” o genérica) a no ser que mediante el mismo procedimiento creemos otro semejante; pero siempre sin instanciar de ninguna clase. Pero tal y como usas el código como te he dicho has creado una clase, no un objeto. A fin de cuentas un objeto es un tipo de datos complejo creado por el programador (tal y como existen tipos de datos nativos del lenguaje de programación, aunque javascript lo trate casi todo como un objeto), y un objeto no es más que un tipo de datos personalizado con valores específicos para los datos que pueda albergar dicho tipo de datos.

    Así, del mismo modo que var numero=5; lo interpreta javascript como un tipo de datos numérico, si tú instancias un objeto a partir de una clase que previamente has creado, por ejemplo la clase “casa”, cuando le das datos concretos de cómo es esa casa (altura=10, superficie=90, temperatura_media_anual= 20, etc) así como luego con esos datos haces operaciones que ya incluías dentro de la clase (los métodos); en definitiva estás usando el tipo de datos “casa” para asignarle un valor concreto a una casa ( y esa casa concreta tendrá como hemos visto muchos datos y métodos internos para que sea un tipo de dato “casa” correcto y con un valor concreto).

    Un saludo

Leave A Comment?