Propiedades de los objetos en JavaScript
Las propiedades de los objetos en JavaScript hacen referencia a los valores asociados al objeto, ya que este no es más que una colección de propiedades desordenadas. Estas propiedades se pueden cambiar, agregar, eliminar… aunque algunos sean solo de lectura.
Acceso a las propiedades JavaScript
Hay diferentes formas de acceder a la propiedad de un objeto como podemos ver a continuación:
nombreObjeto.propiedad //persona.edad nombreObjeto["propiedad"] //persona["edad"] nombreObjeto[expresión] //x = "edad"; persona[x]
Se puede utilizar un bucle para recorrer todas propiedades de un objeto de la siguiente forma:
for (variable in objeto) { //código a ejecutar }
De este modo el código dentro del bucle for…in se ejecuta una vez por cada propiedad, y podemos recoger todas ellas de la siguiente forma:
<!DOCTYPE html> <html> <body> <span id="demo"></span> <script> var txt = ""; var persona = {nombre:"Juana", apellido:"Calamidad", edad:34}; var x; for (x in persona) { txt += persona[x] + " "; } document.getElementById("demo").innerHTML = txt; </script> </body> </html>
De este modo podemos ir obteniendo los datos del objeto, pero también podemos hacer otras opciones con nuestros objetos…
Añadir nuevas propiedades
Se le puede añadir una nueva propiedad a un objeto existente simplemente dándole un valor. De este modo, suponiendo que tenemos nuestro objeto persona se le puede añadir otra propiedad como la nacionalidad simplemente con la siguiente línea de código.
persona.nacionalidad = "Americana";
Eliminar propiedades
La eliminación de una propiedad se hace por medio de la palabra reservada delete, eliminando tanto el valor de la propiedad como la propiedad en sí, y esta no puede ser utilizada hasta que se añada nuevamente.
Este operador no tiene efecto en variables o funciones y nunca debe de utilizarse para propiedades predefinidas del objeto JS ya que puede bloquear la aplicación.
delete persona.edad;
Atributos de propiedad
Todas las propiedades tienen un nombre y un valor, siendo este uno de los atributos de la propiedad.
Existen otros atributos como; enumerable, configurable y writable (modificable), los cuales definen como se puede acceder a la propiedad .
En JS todos los atributos se pueden leer, pero solo el valor se puede cambiar si su propiedad es de escritura.
Propiedades de los prototipos
Los objetos JS heredan las propiedades de su prototipo, y delete no elimina propiedades heredadas, pero si elimina una propiedad de prototipo que afectará a todos los objetos heredados del mismo… (veremos los prototipos próximamente…)