JS对象
10.0 对象
内置对象:js自带的
一、 自定义对象
1. 概念
js中对象是一组无序数据的列表
2. 特点
(1). 对象中每一条数据都是由“键:值”组成
(2). “值”可以是任意数据类型,但“键”只能是字符串,(键可以不用写引号js系统会自动识别)
二、 怎么创建自定义对象
(1).字面量:let obj = { };
(2).构造函数方式:let obj = new Object();
三、 对象的属性
1. 概念:当对象中的某一条数据,它的'键'所对应的'值' '不是函数类型';那么,这条数据就叫做对象的属性。
代码示例:
let student = {
name:'韩梅梅',
age:20
//student这个对象有name和age两个属性
}
2. 怎么操作属性:
(1). 通过点运算符对象.属性名
查看:
//通过对象属性查看对象中的数据
代码示例:
let student = {
name: '小花',
age: 20
}
console.log(student.name);
修改
//通过对象的属性修改对象中的数据
代码示例:
student.age = 18;
console.log(student.age);
添加
//通过对象的属性添加对象中的数据
代码示例:
student.gender = '女';
console.log(student);
删除
通过对象的属性删除对象中的数据
代码示例: delete student.age; console.log(student);
(2). 通过中括号[]
查看:
//通过对象属性查看对象中的数据
代码示例:
let student = {
name: '小明',
age: 20
}
console.log(student['name']);
修改: //通过对象属性修改对象中的数据
代码示例:
let student = {
name: '小明',
age: 20
}
student["age"] = 18;
console.log(student["age"] );
添加: // 通过对象属性添加对象中的数据
代码示例:
let student = {
name: '小明',
age: 20
}
student['gender'] = '男';
console.log(student["gender"] );
删除: // 通过对象属性删除对象中的数据
代码示例: let student = { name: '小明', age: 20 } delete student["age"]; console.log(student);
注释:当需要键作为一个变量名时,需要通过变量名找到。
四、 对象的方法
-
概念:当对象中的某一条数据,它的键所对应的值是函数类型;那么,这条数据叫做对象的方法。
-
对象方法怎么操作:
(1). 点运算符调用执行:对象.键名()
(2). 中括号调用执行:对象.["键名"]()
代码示例: let student = {
name: '小明',
friends: ['小花', '小草'],
sayName: function () {
console.log('我的名字是小明');
let test = 'hahaha';
return test;
}
}
let a = student.sayName();点运算符调用执行
console.log(a);
student.sayName();//点运算符调用执行:对象.键名();
student['sayName']();//中括号调用执行:对象.["键名"]();
五、 遍历对象
for (let 变量 in 对象){
}
代码示例:
let student = {//student是储存对象内数据的变量
name: '花花',//name是键名,'花花'是值
age: 18,
friends: '刘星'
}
for (let key in student) {
// console.log(key);//遍历对象的键名
console.log(student[key]);//遍历对象的值(通过对象拿到值)
}
六、 对象的扩展
1. 对象的解构
代码示例: let student = { name: '草草', age: 20 } let { name: a, age: b } = student; console.log(a, b); console.log(name, age); let { name: name, age: age } = student;//键名和值可以是相同命名 let { name, age } = student;//当键名和值相同命名的时候可以简写
ES6:当键名和值是相同命名得时候可以省略键名
2. 解构的默认值
this关键字
- 作为对象的方法调用:
代码示例:
let test = {
name: 'xxx',
sayName: function () {
console.log(`我的名字是 ${this.name}`);
}
}
test.name = 'this关键字';
test.sayName();//函数作为方法调用,其内部的this指向当前方法所属对象
代码示例:
let test = function () {
console.log(this.arr);
}
let student = {
arr:[12,13]
}
student.fn=test;
student.fn();
-
作为普通函数调用
name = '命名'; function test() { console.log(this.name); } test();