对象概念
##一、对象
###1.1 内置对象
###1.2 自定义对象(Json式对象)
####1.2.1 概念
js中对象是一组无序数据的列表,每一条数据都是由"键:值"组成
其中,值可以是任意数据类型,但是键只能是字符串(可以不用加'')
###1.3 创建对象
1. 字面量
```js
let obj={};
```
2. 构造函数
```js
let obj=new Object();
```
###1.4 对象属性
当对象中的某一条数据,它的键所对应的值是"非函数"类型,那么这条数据就叫做对象的属性
```js
let sudent{
name:xxx,
age:xxx
}
```
1. 操作属性
1.点运算符 .
console.log(student.name)
student.age=18 //修改
student.xxx=xxxx //增加
delet student.age //删除s
2.中括号 []
console.log(student.name)
student['age']=18 //修改
student['xxx']=xxxx //增加
delet student['age'] //删除
3.特殊
let a='name'
console.log(student[a]) //当前情况时用[]
###1.5 对象方法
当对象中某条数据对应值为函数类型,这条数据就叫做对象的方法
1. 操作方法
```js
let student={
sayName:function(){
}
student.sayName();
student['sayName']; //调用
}
```
###1.6 对象遍历
```js
for(let key in student){
console.log(student[key]);
}
```
###1.7 对象的扩展
1. 对象的解构
```js
let{name:a,age:b}=student;
console.log(a,b); //当键和值名相同时,可省略值
let{name='A',age=3}={}; //默认值
```
###1.8 this关键字
对象内部使用,指向对象
1. 方法中的this:一个方法中的this指向当前这个方法所属对象
```js
let student={
name:'xxxx',
console.log(this.name);
}
```
//在方法中访问该对象的属性,通过"this.属性名"访问
2. 函数中的this:一个函数中的this指向全局对象(指向全局包含该属性名的变量)
如果function作为函数调用,this指向全局中的包含该属性的变量
如果function作为方法调用,this指向当前所在的对象,即调用该方法的对象
this的具体指向,在调用时确定