在JS中或者说在面向对象的编程语言中,对象是一系列属性和方法的组合。一个属性包含属性名和属性值,这个值可以是任意类型的数据,也可以是个函数,这种情况下函数也被称为方法。
1.1 什么是对象?
对象是事物,在现实世界中,一个球,一张桌子,一辆汽车都是对象。
对象就是具有可描述特征的事物,我们可以用某种特定的方式去影响和操作它。
在JS中或者说在面向对象的编程语言中,对象是一系列属性和方法的组合。
一个属性包含属性名和属性值,这个值可以是任意类型的数据,也可以是个函数,这种情况下函数也被称为方法。
而在JS中,你遇到的所有东西几乎都是对象,那么我们来了解一下对象的细节。
1.2 对象的特征?
对象有属性,也就是对象的特征,可以通过点符号来访问一个对象的属性。
objectName.propertyName;
如果把对象比作现实中的一个球,那这个球就是一个对象,拥有属性,有颜色有大小。这些可以这样表示:
对象还有方法,方法用于定义对象的行为方式。
比如这个球可能有滚动的方法可以计算能滚多远,有弹跳的方法可以计算跳多高。
可以这样表示:
1.3 访问对象的属性
前面讲过我们可以通过点符号来访问对象的属性,但如果是这样的情况,还能通过点符号访问对象的属性吗:
这里假设有一个变量spec,我们需要通过这个变量spec来访问对象属性。
但如果用点符号将会访问ball的spec属性然后返回一个undefined,说明这里直接将spec当做了一个属性而不是变量。
如果我们想要获得变量的值,来作为对象的属性那应该怎么做呢?
可以使用方括号标记访问,这个标记法在属性名称那里是动态判定的,这样就可以通过存储在变量中的字符串来访问属性了:
1.4 枚举对象的属性
另外我们可以通过for in循环语句来枚举对象的所有属性:
也可以通过Object.keys(obj)的方法来返回一个属性名集合的数组: