JavaScript 对象属性
JavaScript 对象是属性和方法的集合,属性通过键值对的方式描述对象的信息。
JavaScript 对象是属性和方法的集合,属性通过键值对的方式描述对象的信息。
JavaScript 属性
JavaScript 对象的属性以键值对的方式描述对象的信息或数据。
JavaScript 对象的属性是无序。
一般情况下,我们可以随意的读取、和修改对象的属性,也可以添加新的属性和删除已有的属性。
访问 JavaScript 属性
访问对象属性的语法是:
objectName.property; // person.age
或者
objectName["property"]; // person["age"]
示例 1
person.firstname + " 现在 " + person.age + " 岁了。";
示例 2
person["firstname"] + " 现在 " + person["age"] + " 岁了。";
遍历对象属性 for…in
JavaScript for...in
语句循环遍历对象的属性。
语法:
for (let variable in object) {
// some code
}
示例:
const person = {
fname: " John",
lname: " Doe",
age: 25,
};
for (let x in person) {
txt += person[x];
}
添加新属性
我们可以很方便的给对象添加新的属性
假设 person 对象已经存在,然后添加新的属性:
person.nationality = "English";
或者:
person["nationality"] = "English";
删除属性
delete
关键字从对象中删除对象的属性:
delete person.age;
或者:
delete person["age"];
说明:
delete
删除了对象的属性键值对。- 访问删除后的属性返回
undefined
。 delete
删除属性后可以重新添加。delete
只能删除对象的属性,不能删除对象函数。- 严格模式下不能使用
delete
。 - 不应该使用
delete
操作内置对象,可能引发错误。
嵌套对象
一个对象中的属性值可以是另一个对象:
myObj = {
name: "John",
age: 30,
cars: {
car1: "Ford",
car2: "BMW",
car3: "Fiat",
},
};
您可以使用点表示法或方括号表示法访问嵌套对象:
myObj.cars.car2;
或者:
myObj.cars["car2"];
或者:
myObj["cars"]["car2"];
或者:
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
嵌套数组和对象
对象中的值可以是数组,数组中的值可以是对象:
const myObj = {
name: "John",
age: 30,
cars: [
{ name: "Ford", "models": ["Fiesta", "Focus", "Mustang"] },
{ name: "BMW", "models": ["320", "X3", "X5"] },
{ name: "Fiat", "models": ["500", "Panda"] },
],
};
要访问数组内的数组,可以嵌套循环:
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];
}
}
原型属性
JavaScript 对象继承其原型的属性。
delete
关键字不会删除继承的属性,但是如果删除原型属性,则会影响从原型继承的所有对象。