Objetos y sus propiedades
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