JavaScript对象

JavaScript 对象

❮ 上一个 下一个 ❯

现实生活中的对象

在现实生活中,对象是指:房子、汽车、人、动物或任何其他主体。

这是一个汽车对象的例子

汽车对象

属性

方法

car.name = 菲亚特car.model = 500car.weight = 850kgcar.color = 白色

car.start()car.drive()car.brake()car.stop()

对象属性

现实生活中的汽车具有属性,例如重量和颜色

car.name = 菲亚特,car.model = 500,car.weight = 850kg,car.color = 白色。

汽车对象具有相同的属性,但值因汽车而异。

对象方法

现实生活中的汽车具有方法,例如启动和停止

car.start(), car.drive(), car.brake(), car.stop().

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

JavaScript 变量

JavaScript 变量是数据值的容器。

此代码将简单值 (Fiat) 赋给名为 car 的变量

示例

let car = "Fiat";

自己动手试一试 »

JavaScript 对象

对象也是变量。但对象可以包含许多值。

此代码将许多值 (Fiat, 500, white) 赋给名为 car 的对象

示例

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

自己动手试一试 »

注意

使用 const 关键字声明对象是一种常见的做法。

在章节:JS Const 中了解更多关于在对象中使用 const 的信息。

JavaScript 对象定义

如何定义 JavaScript 对象

使用对象字面量

使用 new 关键字

使用对象构造函数

JavaScript 对象字面量

对象字面量是花括号 {} 内的名称:值对列表。

{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

注意

名称:值对也称为键:值对。

对象字面量也称为对象初始化器。

创建 JavaScript 对象

这些示例创建了一个具有 4 个属性的 JavaScript 对象

示例

// 创建一个对象const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

自己动手试一试 »

空格和换行符不重要。对象初始化器可以跨多行

// 创建一个对象const person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue"

};

自己动手试一试 »

此示例创建了一个空的 JavaScript 对象,然后添加了 4 个属性

// 创建一个对象const person = {};

// 添加属性person.firstName = "John";person.lastName = "Doe";person.age = 50;person.eyeColor = "blue";

自己动手试一试 »

使用 new 关键字

此示例使用 new Object() 创建了一个新的 JavaScript 对象,然后添加了 4 个属性

示例

// 创建一个对象const person = new Object();

// 添加属性person.firstName = "John";person.lastName = "Doe";person.age = 50;person.eyeColor = "blue";

自己动手试一试 »

注意

上面的例子做的事情完全一样。

但是,没有必要使用 new Object()。

为了可读性、简单性和执行速度,请使用对象字面量方法。

对象属性

JavaScript 对象中的命名值称为属性。

属性

值

firstName

John

lastName

Doe

age

50

eyeColor

blue

以名称值对形式写入的对象类似于

PHP 中的关联数组

Python 中的字典

C 中的哈希表

Java 中的哈希映射

Ruby 和 Perl 中的哈希

访问对象属性

您可以通过两种方式访问对象属性

objectName.propertyName

objectName["propertyName"]

示例

person.lastName;

自己动手试一试 »

person["lastName"];

自己动手试一试 »

JavaScript 对象方法

方法是可以对对象执行的动作。

方法是作为属性值存储的函数定义。

属性

属性值

firstName

John

lastName

Doe

age

50

eyeColor

blue

fullName

function() {return this.firstName + " " + this.lastName;}

示例

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

};

自己动手试一试 »

在上面的示例中,this 指的是person 对象

this.firstName 表示 person 的 firstName 属性。

this.lastName 表示 person 的 lastName 属性。

在 JavaScript 中,对象为王。

如果你理解对象,你就理解 JavaScript。

对象是属性和方法的容器。

属性是命名值。

方法是作为属性存储的函数。

属性可以是原始值、函数,甚至是其他对象。

在 JavaScript 中,几乎“一切”都是对象。

对象就是对象

数学是对象

函数是对象

日期是对象

数组是对象

Map 是对象

Set 是对象

除了原始值之外,所有 JavaScript 值都是对象。

JavaScript 原始值

原始值是没有属性或方法的值。

3.14 是一个原始值

原始数据类型是具有原始值的数据。

JavaScript 定义了 7 种原始数据类型

string

数字

boolean

null

undefined

symbol

bigint

不可变

原始值是不可变的(它们是硬编码的,不能更改)。

如果 x = 3.14,您可以更改 x 的值,但不能更改 3.14 的值。

值类型注释

"Hello"string"Hello" 永远是 "Hello"

3.14数字3.14 永远是 3.14

truebooleantrue 永远是 true

falsebooleanfalse 永远是 false

nullnull (对象)null 永远是 null

undefinedundefinedundefined 永远是 undefined

JavaScript 对象是可变的

对象是可变的:它们通过引用而不是通过值寻址。

如果 person 是一个对象,则以下语句不会创建 person 的副本

const x = person;

对象 x 不是 person 的副本。对象 x 就是 person。

对象 x 和对象 person 共享相同的内存地址。

对 x 的任何更改也会更改 person

示例

//创建一个对象const person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"

}

// 创建一个副本const x = person;

// 同时更改两者中的 Agex.age = 10;

自己动手试一试 »

注意

您将在后续章节中学习更多关于对象的内容。

通过练习来测试自己

练习

通过从 person 对象中提取信息,弹窗显示 "John"。

const person = {

firstName: "John",

lastName: "Doe"

};

alert();

提交答案 »

开始练习

❮ 上一个 下一个 ❯

★ +1

W3schools 学习路径

跟踪您的进度 - 免费!

登录 注册