日期:2024年2月27日

对象

基本数据类型只是一个一个独立的值。前边我们也提到过了,程序就是对现实世界的抽象,这就带来了一个问题,现实世界中存在东西是各种各样的,怎么能用这样几个简单的值就能表示呢?很显然只有基本数据类型是不够的,所以在JS中还有一些“值”,用来表示更加复杂的数据。

对象(object)

现在假设有这样一个需求,需要在JS中来表示一个人的信息。人的信息包含了三个内容(姓名、性别和年龄)。如果说使用已有的技术手段,你可能会这么做。

let name = '汤姆'
let gender = '男'
let age = 15

通过三个变量确实可以存储人的三个信息,但似乎又不是那么的合适。变量和变量之间是相互独立的,所以name、gender和age本身就是三个互相独立的变量。从结构上讲它们没有任何的关系,然而实际上这三个数据应该同属于一个“人”。如何在程序中体现出这一层关系呢?这里就需要使用到对象。

对象在JS中实则就是一个容器,一个“值”的容器。在对象中可以存放不同类型的值,如此一来便可以在对象中存储多个值,从而表示出一些更加复杂的数据。

要使用对象首先需要先创建一个对象,在JS中对象用大括号({})表示,我们可以之间通过{}来创建对象。为了方便使用,还是需要讲一个对象赋值给变量。

let o = {} //创建一个对象,赋值给变量o

现在变量o所指向的值就是一个对象,你可以通过console.log()打印一下看看对象到底长什么样子。

在chrome控制台打印对象

容器已经有了,下边可以向容器中添加值。对象中存储的值被称为属性,属性由两部分组成,属性名和属性值。向对象中添加属性:

对象.属性名 = 属性值

现在向对象o中添加三个属性:

let o = {} //创建一个对象,赋值给变量o
o.name = 'Tom'
o.gender = '男'
o.age = 15
console.log(o)

打印对象

添加属性后发现对象从{}变为了{name: "Tom", gender: "男", age: 15}。现在三个值同属为一个对象,在结构上体现了整体的关系,o这个对象就完成了对一个人的抽象。抽象你可能还不太理解,但可以先这么记,在对象中可以同时存储多个值。

值存进去了,要如何取出来呢?简单:对象.属性

console.log(o.name) // Tom
console.log(o.gender) // 男
console.log(o.age) // 15

对象中的属性主要分成了两个部分,像o.name、o.gender、o.age中的name、gender、age这些属于属性名,属性名的要求和标识符的是一致,还有一些特殊的情况,我们暂时先不讨论。属性值可以是任意值,啥都行!啥都行!只要是值就可以作为对象的属性值!

对象字面量

上边这种用法,属于先创建对象然后再添加属性。除此之外也可以在创建对象时,直接向对象中添加属性:

{属性名:属性值,属性名:属性值,属性名:属性值}

上边的对象o也可以使用这种方式创建:

let o = {
    name:'Tom',
    age:15,
    gender:'男'
}

这两种写法作用都是一样的没有任何区别,这种创建对象的方式叫做对象字面量,字面量的语法和CSS中声明块非常像,只是属性间不使用 ; 而是 , 隔开。另外需要注意,如果是最后的属性(上例中的 gender 属性),后边不能在写 , 了。

对象有了,也许你可以尝试自己创建一个对象,来存储一下你的个人信息。

0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x