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 关键字不会删除继承的属性,但是如果删除原型属性,则会影响从原型继承的所有对象。