JavaScript 对象

在 JavaScript 中,大多数事物都是对象, 包括数字、字符串、布尔值、数组、函数,正则表达式等。JavaScript 对象是一个包含相关数据和方法的集合,通常由一些变量和函数组成。

在 JavaScript 中,大多数事物都是对象, 包括数字、字符串、布尔值、数组、函数,正则表达式等。JavaScript 对象是一个包含相关数据和方法的集合,通常由一些变量和函数组成。

现实对象、属性和方法

在现实生活中,汽车是一个对象

汽车具有重量和颜色等属性,以及启动和停止等方法

所有汽车都具有相同的属性,但属性因汽车而异。

所有的汽车都有相同的方法,但这些方法是在不同的时间执行的 。

JavaScript 对象

JavaScript 对象是一个包含相关属性和方法的集合,通常由一些变量和函数组成。属性描述了对象的信息,方法则定义了对象的操作。

下面定义了一个对象,有 typemodelcolor 三个属性,并把对象赋值给 car 变量

const car = { type: "Fiat", model: "500", color: "white" };

JavaScript 对象由对象字面量定义。对象字面量是封闭在花括号对({})中的一个对象的零个或多个"属性名-值"对的(元素)列表。

空格和换行符不影响对象的定义。一个对象定义可以跨越多行:

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

上面定义了一个 person 对象(person 是人的意思),这个对象有四个属性: firstName(名),lastName(姓),age(年龄),eyeColor(眼睛颜色)。

对象属性

JavaScript 对象中的属性名:值对称为属性

上面的 person 对象的属性如下:

属性名 属性值
firstName John
lastName Doe
age 50
eyeColor blue

访问对象属性

您可以通过点或者方括号两种方式访问对象的属性:

objectName.propertyName;

或者

objectName["propertyName"];

!! 这种通过方括号的访问对象属性的方式和数组索引有点像。其实可以把对象看作一个特殊的数组,只不过对象的索引是属性名,而数组的索引是元素的序列位置。

比如下面的两种:

// 下面两种调用方式产生的结果一样
console.log(person.lastName);
console.log(person["lastName"]);

对象方法

当对象的某个属性的值是函数的时候,我们称这个属性为方法。方法一般定义了对象上的某个操作,执行方法就是调用相应的函数。

const person = {
  firstName: "John",
  lastName: "Doe",
  id: 5566,
  fullName: function () {
    return this.firstName + " " + this.lastName;
  },
};

上面例子的对象定义中,fullName 就是对象的方法,该方法返回当前对象的全名。

上面例子中的 this 关键字是指对象本身,this.firstName 就是当前对象的 firstName 属性。

更对关于 this 关键字的信息请访问 JavaScript this 章节获得更多信息。

访问对象方法

您可以使用以下点语法访问对象方法:

objectName.methodName()

如果调用对象方法的时候没有带上后面的 (),他会返回函数定义,如下:

let name = person.fullName;
console.log(name);

不要将字符串、数字和布尔值声明为对象!

当使用关键字 new 声明 JavaScript 变量时,该变量将创建为对象:

let x = new String(); // 定义 x 为 String object
let y = new Number(); // 定义 y 为 Number object
let z = new Boolean(); // 定义 z 为 Boolean object

避免通过 new 创建 StringNumberBoolean 对象,它们使您的代码复杂化并降低执行速度。

您将在本教程的后面了解有关对象的更多信息。