Propiedades de objeto de JavaScript
Las propiedades son la parte más importante de cualquier objeto de JavaScript.
Propiedades de JavaScript
Las propiedades son los valores asociados con un objeto de JavaScript.
Un objeto JavaScript es una colección de propiedades desordenadas.
Por lo general, las propiedades se pueden cambiar, agregar y eliminar, pero algunas son de solo lectura.
Acceso a las propiedades de JavaScript
La sintaxis para acceder a la propiedad de un objeto es:
objectName.property // person.age
o
objectName["property"] // person["age"]
o
objectName[expression] // x = "age"; person[x]
La expresión debe evaluarse como un nombre de propiedad.
Ejemplo 1
person.firstname + " is " + person.age + " years old.";
Ejemplo 2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScript para... en bucle
La declaración de JavaScript for...in
recorre las propiedades de un objeto.
Sintaxis
for (let variable in object) {
// code to be executed
}
El bloque de código dentro del for...in
bucle se ejecutará una vez para cada propiedad.
Recorriendo las propiedades de un objeto:
Ejemplo
const person = {
fname:" John",
lname:" Doe",
age: 25
};
for (let x in person) {
txt += person[x];
}
Adición de nuevas propiedades
Puede agregar nuevas propiedades a un objeto existente simplemente dándole un valor.
Suponga que el objeto persona ya existe; luego puede darle nuevas propiedades:
Ejemplo
person.nationality = "English";
Eliminación de propiedades
La delete
palabra clave elimina una propiedad de un objeto:
Ejemplo
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
o borrar persona["edad"];
Ejemplo
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
La delete
palabra clave elimina tanto el valor de la propiedad como la propiedad misma.
Después de la eliminación, la propiedad no se puede usar antes de que se vuelva a agregar.
El
delete
operador está diseñado para usarse en propiedades de objetos. No tiene efecto sobre variables o funciones.
El delete
operador no se debe usar en propiedades de objeto de JavaScript predefinidas. Puede bloquear su aplicación.
Objetos anidados
Los valores en un objeto pueden ser otro objeto:
Ejemplo
myObj = {
name:"John",
age:30,
cars: {
car1:"Ford",
car2:"BMW",
car3:"Fiat"
}
}
Puede acceder a objetos anidados utilizando la notación de puntos o la notación de corchetes:
Ejemplo
myObj.cars.car2;
o:
Ejemplo
myObj.cars["car2"];
o:
Ejemplo
myObj["cars"]["car2"];
o:
Ejemplo
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
Matrices y objetos anidados
Los valores de los objetos pueden ser matrices y los valores de las matrices pueden ser objetos:
Ejemplo
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
Para acceder a arreglos dentro de arreglos, use un bucle for-in para cada arreglo:
Ejemplo
for (let i in myObj.cars) {
x += "<h1>" + myObj.cars[i].name
+ "</h1>";
for (let j in myObj.cars[i].models) {
x += myObj.cars[i].models[j];
}
}
Atributos de propiedad
Todas las propiedades tienen un nombre. Además también tienen un valor.
El valor es uno de los atributos de la propiedad.
Otros atributos son: enumerable, configurable y escribible.
Estos atributos definen cómo se puede acceder a la propiedad (¿se puede leer?, ¿se puede escribir?)
En JavaScript, todos los atributos se pueden leer, pero solo se puede cambiar el atributo de valor (y solo si se puede escribir en la propiedad).
(ECMAScript 5 tiene métodos para obtener y establecer todos los atributos de propiedad)
Propiedades del prototipo
Los objetos JavaScript heredan las propiedades de su prototipo.
La delete
palabra clave no elimina las propiedades heredadas, pero si elimina una propiedad de prototipo, afectará a todos los objetos heredados del prototipo.