11对象
# 对象
# 1、创建对象
字面量创建法
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18
}
1
2
3
4
2
3
4
# 获取值(value)
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18
}
console.log(obj.name); //娜美✨✨
// console.log(obj["name"]);//娜美 //也可以这样的写法
1
2
3
4
5
6
2
3
4
5
6
对象的value值可以写任意的值,而key只能写字符串
注意,对象没有length属性
# 2、迭代对象的key和value
# es5写法
只能迭代对象的value值
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18
}
for (key in obj) {
console.log(obj[key]) //娜美,18
console.log(key);//name、age
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 案例:对象转【数组】
var obj = { name: "娜美", age: 18, sex: "女" };
var arr = []
for (key in obj) {
arr.push(obj[key]) //arr.unshift()这种是反着来了
}
console.log(arr);//["娜美", 18, "女"]
1
2
3
4
5
6
2
3
4
5
6
# es6写法✨
转【数组】
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18
}
console.log(Object.keys(obj)) //key ["name", "age"]
console.log(Object.values(obj))//value ["娜美", 18]
1
2
3
4
5
6
2
3
4
5
6
# 3、对象的增删改查操作
# 增
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18
}
obj.sex = "女"
// obj["sex"] = "男" //也这可以这样的写法
console.log(obj);//{name: "娜美", age: 18, sex: "女"}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 删
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18,
sex: "女"
}
delete obj.sex
console.log(obj);//{name: "娜美", age: 18}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 改
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18
}
// obj["name"] = "大和" //也这可以这样的写法
obj.name = "妮可罗宾"
console.log(obj); //{name: "妮可罗宾", age: 18}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 查
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18,
sex: "女"
}
// console.log(obj["name"]); //也这可以这样的写法
console.log(obj.name); //娜美
console.log(Object.keys(obj));//["name", "age", "sex"]
console.log(Object.values(obj));//["娜美", 18, "女"]
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 4、在对象里面的this关键字
关键字"this"指向了当前所在的上下文对象
var obj = {
name: "娜美", //name是键(key),娜美是值(value)
age: 18,
sayHello: function () {
console.log(this);//obj对象 {name: "娜美", age: 18, sayHello: ƒ}
console.log(this.name);//娜美
}
}
obj.sayHello()
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
this 是对象的指针,指的当前上下文手指的对象
隔壁老王的儿子,不是他儿子
隔壁刘王的儿子,不是他儿子
# 1、方法
var obj = {
name: "阿丽塔",
age: 18,
sex: "女",
say: function () {
console.log(this);//{name: "阿丽塔", age: 18, sex: "女", say: ƒ}
},
};
obj.say();
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
这种是特殊了
console.log(this);//window
1
# 2、方法
var obj = {
name: "娜美",
obj2: {
name: "妮可罗宾",
say: function () {
console.log(this); //{name: "妮可罗宾", say: ƒ}
}
}
}
obj.obj2.say()
// obj["obj2"].say() //也可以这样子写
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 5、对象的分类
//宿主对象(根据js所处的环境的对象)
dom(document object model 文档对象模型)
bom(browser objcet model 浏览器对象模型)
//本地对象(需要实例化的,js自带的对象)
new Object()
new Function()
new Array()
new String()
new Boolean()
new Number()
new Date()
new RegExp()
new Error()
//内置对象(不需要实例化的对象)
Global
Math
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
编辑 (opens new window)
上次更新: 2022/04/24, 13:33:34