JavaScript 和对象
学习并练习 JavaScript 中对象的基本概念。
什么是对象?
在非编程的意义上思考对象,就像我们周围看到的有形事物一样。以一支笔为例:一支笔可以有不同的墨水颜色,由不同的人制造,笔尖也各不相同,还有许多其他属性。
类似地,在编程中,一个对象就是一个具有属性的实体。每个属性定义了对象的一个特征。属性可以是与对象相关联的信息(如笔的颜色),也可以是对象能够执行的动作(如笔的书写能力)。
这和代码有什么关系?
面向对象编程(简称 OOP)是一种使用对象来编写程序的方法。在使用 OOP 时,你编写、创建和修改对象,这些对象构成了你的程序。
OOP 改变了程序的编写和组织方式。到目前为止,你一直在编写基于函数的代码,有时也称为过程式编程:这是一种编程范式,基于过程调用的概念。过程(一种例程或子程序)仅包含一系列需要执行的计算步骤。现在让我们学习如何编写面向对象的代码。
JavaScript 与对象
和许多其他语言一样,JavaScript 支持通过对象进行编程。它提供了多个预定义的对象,同时也允许你创建自己的对象。
创建对象
以下是蓝色 Bic 圆珠笔在 JavaScript 中的表示:
1const pen = { 2 type: "ballpoint", 3 color: "blue", 4 brand: "Bic" 5};
如前所述,可以通过在一对大括号 {...} 内设置属性来创建 JavaScript 对象。每个属性都是一个键值对。这被称为对象字面量。
大括号闭合后的分号
;是可选的,但为了安全起见,建议加上。
上述代码定义了一个名为 pen 的变量,其值是一个对象:因此可以说 pen 是一个对象。这个对象有三个属性:type、color 和 brand。每个属性都有一个名称和一个值,并用逗号 , 分隔(最后一个属性除外)。
访问对象的属性
创建对象后,你可以使用点表示法(如 myObject.myProperty)来访问其属性的值。
1const pen = { 2 type: "ballpoint", 3 color: "blue", 4 brand: "Bic" 5}; 6 7console.log(pen.type); // "ballpoint" 8console.log(pen.color); // "blue" 9console.log(pen.brand); // "Bic"
访问对象属性是一种产生值的表达式。这种表达式可以嵌入更复杂的表达式中。例如,以下是如何在一条语句中显示笔的所有属性。
1const pen = { 2 type: "ballpoint", 3 color: "blue", 4 brand: "Bic" 5}; 6 7console.log(`我用一支 ${pen.color} 的 ${pen.brand} ${pen.type} 笔写字`);
修改对象
一旦创建了对象,就可以使用语法 myObject.myProperty = newValue 来更改其属性的值。
1const pen = { 2 type: "ballpoint", 3 color: "blue", 4 brand: "Bic" 5}; 6 7pen.color = "red"; // 修改笔的颜色属性 8 9console.log(`我用一支 ${pen.color} 的 ${pen.brand} ${pen.type} 笔写字`);
JavaScript 还支持动态地向已创建的对象添加新属性。
1const pen = { 2 type: "ballpoint", 3 color: "blue", 4 brand: "Bic" 5}; 6 7pen.price = "2.5"; // 设置笔的价格属性 8 9console.log(`我的笔价格是 ${pen.price}`);