Objetos y sus propiedades

facebook-svg gplus-svg twitter-svg

Una vez creado un objeto necesitamos saber como utilizar y manipular las propiedades de este.

Como utilizar las propiedades de un objeto

Para utilizar las propiedades de un objeto empleamos la siguiente sintaxis: objeto.propiedad

Por ejemplo si tenemos un objeto pelota:

var pelota = {
    x: 150,
    y: 150,
    radio: 25,
    color: "tomato"
  }

Para sacar en consola el color ( propiedad ) de la pelota ( objeto ) tenemos que escribir:

console.log( pelota.color );

Y para modificar o actualizar el valor de una propiedad:

pelota.color = "crimson ";
pelota.x += 1;

Pero muchas veces no sabemos si un objeto tiene o no una cierta propiedad.  Hay varias maneras de comprobarlo.

Comprobar si un objeto tiene o no una propiedad

Un método muy sencillo para comprobar si un objeto tiene o no una cierta propiedad es: if(objeto.propiedad)

if(pelota.radio){ console.log("lo tiene")};

También podemos utilizar esta otra sintaxis que hace recordar a los arrays:

if(pelota["radio"]){ console.log("lo tiene")};

Observe que en este caso "radio" aparece entre comillas, porque es el nombre de la propiedad, y si lo tenemos almacenado en una variable podemos escribir:

var propiedad = "radio";
if(pelota[propiedad]){ console.log("lo tiene")};

También podemos utilizar el método hasOwnProperty que devuelve un booleano: true o false.

pelota.hasOwnProperty('radio');// devuelve true

Otro método para comprobar si un objeto tiene o no una cierta propiedad es utilizar el operador in: if( propiedad in objeto )

if("radio" in pelota ){ console.log("la pelota tiene radio")};

También en este caso la palabra "radio" aparece entre comillas, porque es el nombre de la propiedad, y si lo tenemos almacenado en una variable podemos escribir:

var propiedad = "radio";
if (propiedad in pelota ){ console.log("la pelota tiene radio")};

Y esto abre más posibilidades.

Recuperar todas las propiedades de un objeto

Podemos utilizar el operador in para iterar todas las propiedades de un objeto en un bucle for:

for( var p in pelota){
   console.log(p); 
}
                                                          

Y también podemos recuperar el valor de cada propiedad utilizando el mismo bucle for:

for( var p in pelota){
   console.log(pelota[p]);
}

Si por ejemplo queremos recuperar solo las propiedades cuyo valor es un número podemos utilizar el operador typeof:

for( var p in pelota){
   if(typeof pelota[p] == "number"){
   console.log(p);}
}

Borrar una propiedad de un objeto

Para borrar una propiedad de un objeto utilizamos el operador delete:

delete pelota.color

Vealo en codepen

Enlaces útiles

- Trabajando con objetos en JavaScript.