目录
十二、对象
对象:一个具体的事物。泛指的事物不能称为对象。
对象的概念:一组无序的相关属性(事物的特征,常用名词)和方法(事物的行为,常用动词)的集合。
为什么需要对象:在JS中的对象表达结构会更加清晰。
例如在使用数组保存多个变量时容易让人无法理解各个变量的含义,而使用对象表达可以清晰地表达出各变量代表的含义。
1、创建对象的三种方式
利用字面量创建对象
对象的字面量:花括号{},里面包含了表达该事物(对象)的属性和方法。
{ }里面采用键值对的形式表示,键相当于属性名,值相当于属性值,是可以任意类型的值。
书写格式如下:
前三个部分为属性,后面sayHi部分为方法。
注意:
- 属性的表达形式为 属性名 : 属性值
- 多个属性或者方法中间用逗号隔开
- 方法的冒号后面跟的是一个匿名函数
利用new Object创建对象
格式如下:
注意:
- 此时利用的是等号赋值的方法来添加对象的属性和方法
- 每个属性和方法之间用分号结束
利用构造函数创建对象
使用前两种创建对象的方式一次只可以创建一个对象,而使用构建函数的方法可以重复相同的部分,该方法也成为对象实例化。
构造函数:把对象一些相同的属性和方法封装到函数里面,主要用来初始化对象。
语法格式如下:
注意:
- 构造函数名字首字母要大写(规范)
- 构造函数里面不需要return就可以返回结果
- 属性和方法前面必须添加this
2、使用对象1(适用于前两种构造方法)
调用对象的属性
方法1:调用格式为 对象名.属性名
方法2:调用格式为 对象名[ ' 属性名' ]
调用对象的方法
调用格式为 对象名.方法名 (由于是函数所以后面要加上小括号) 例如:obj.sayHi ( ) ;
3、使用对象2(适用于第三种构建方法)
利用new来进行调用
格式为:new 构造函数名();括号内部写属性值和方法。如下:
该方法类似于函数的调用,但是调用函数返回的是对象。
4、new关键字执行过程
第一步:new构造函数可以在内存中创建一个空的对象
第二步:this指向空对象
第三步:执行构造函数里面的代码,给空对象添加属性和方法
第四步:返回对象
5、遍历对象
for...in语句
for...in语句用于对数组或者对象的属性进行循环操作。语法格式如下:
遍历对象的方法如下:
6、变量、属性、函数、方法的区别
变量和属性异同
相同点:两者都是用来存储数据的
不同点:变量是单独声明和赋值的,使用的时候直接写变量名,是单独存在的。
属性是在对象里面的,不需要声明,要寄托在对象里面。
函数和方法的异同
相同点:都是用于实现某种功能。
不同点:函数是单独声明和调用的,是单独存在的;方法在对象里面,不可以单独调用。
7、构造函数和对象的区别
构造函数是泛指某一大类而对象则是特指一个具体的事物。