目录

JavaScript 对象属性


属性是任何 JavaScript 对象最重要的部分。


JavaScript 属性

属性是与 JavaScript 对象关联的值。

JavaScript 对象是无序属性的集合。

属性通常可以更改、添加和删除,但有些属性是只读的。


访问 JavaScript 属性

访问对象属性的语法是:

objectName.property      // person.age

或者

objectName[" property"]   // person["age"]

或者

objectName[ expression]   // x = "age"; person[x]

该表达式的计算结果必须是属性名称。

示例1

person.firstname + " is " + person.age + " years old.";
亲自试一试 »

示例2

person["firstname"] + " is " + person["age"] + " years old.";
亲自试一试 »


JavaScript for...in 循环

JavaScriptfor...in语句循环遍历对象的属性。

语法

for (let variable in object) {
  // code to be executed
}

里面的代码块for...in循环将为每个属性执行一次。

循环遍历对象的属性:

示例

const person = {
  fname:" John",
  lname:" Doe",
  age: 25
};

for (let x in person) {
  txt += person[x];
}
亲自试一试 »

添加新属性

您可以通过简单地给现有对象赋值来向其添加新属性。

假设 person 对象已经存在 - 然后你可以给它新的属性:

示例

person.nationality = "English";
亲自试一试 »

删除属性

这个delete关键字从对象中删除属性:

示例

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

delete person.age;
亲自试一试 »

或删除人["age"];

示例

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

delete person["age"];
亲自试一试 »

这个delete关键字删除属性的值和属性本身。

删除后,该属性在重新添加回来之前无法使用。

这个delete运算符被设计用于对象属性。它对变量或函数没有影响。

这个delete不应在预定义的 JavaScript 对象属性上使用运算符。它可能会使您的应用程序崩溃。


嵌套对象

一个对象中的值可以是另一个对象:

示例

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-in 循环:

示例

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 中,所有属性都可以读取,但只有值属性可以更改(并且仅当属性可写时)。

( ECMAScript 5 具有获取和设置所有属性的方法)


原型属性

JavaScript 对象继承其原型的属性。

这个delete关键字不会删除继承的属性,但如果删除原型属性,则会影响从原型继承的所有对象。