1)什么是对象
对象:(具体一个的物体)是一组属性和方法的集合
2)对象的分类
(1)js中的对象
(2)宿主对象
- 浏览器端:DOM,BOM
- Node端:node对象
(3)自定义对象
自定义对象的创建
-
对象字面量 {}
-
- 使用大括号{}创建空对象
- 属性名和属性值用冒号隔开,多组属性之间用逗号隔开
- 属性名中的引号可加可不加,如果有特殊字符必须添加
- 内部属性都是使用键值对
-
内置构造函数 var a=new Object()
-
- 构造函数的特点-》使用new来调用
- 使用new Object() 创建对象
-
自定义构造函数 function Yc(){}
3)对象的操作
对象属性初始化
(1)字面量初始化 直接{ 属性键值对}
(2)内置对象初始化 new Object( { 属性键对 })
对象属性获取:
(1)通过对象名.对象属性名
(2)通过对象名[‘对象属性名’]
注:如果属性不存在,返回undefined
对象属性修改
通过
(1)对象名.修改属性名 =修改值;
(2)对象名[‘修改属性名’]=修改值;
对象属性添加
通过
(1)对象名.添加属性名 =添加属性值;
(2)对象名[‘添加属性名’]=添加属性值;
对象属性删除
delete 对象名.属性名
或
delete 对象名[属性名]
4)对象属性的遍历 --遍历的意思就是访问每一个属性
for(var i in 对象 ){
console.log(i,对象【i】);
}
- 一般我们操作的时候是操作属性键值对的值,但遍历遍历的是键。
- 其中 i 表示对象内每个属性名
- 对象[i]表示对象内每个属性名的值
例子:
for(var key in person){
key//是对象内的每一个键
想访问值-> person[key]
}
注:对象【i】只能用【】 使用。会是undefined
5)对象中的方法–》本质就是对象的属性,存储的一个函数
形式
var a={
say:function(){ }
}
特点:就是一个匿名函数
6)this关键字
this指向当前所在的对象
7)检查对象中是否含有属性
(1)对象.属性名===undefined
(2)预定义方法,js提供好的
对象名.hasOwerProperty() 存在-》true
(3)in关键字 (‘属性名’ in 对象)-》true存在
8) 数据类型存储–堆栈
基本数据类型:栈内存 变量的声明是存储在栈内存,赋值本质就是对对堆内存进行赋值
引用数据类型:堆内存
引用类型的创建是 :在堆内存开辟一个空间,并产生一个地址,然后再栈内存声明一个变量,保存堆内存那个空间产生的十六进制地址
9)对象的销毁(null)
原理:对象不再被地址所引用,自动销毁–》变量赋值=null。