对象的声明
- 第一种写法
let obj = {
'name': 'aaa',
'age': 18
}
- 第二种写法
let obj = new Object({
'name': 'aaa',
'age': 18
})
- 注意点:键名是字符串,引号省略了以后也是字符串
对象属性删除操作
- 第一种方式
let obj = new Object({
'name': 'aaa',
'age': 18
})
// 注意,这种写法name没有加引号
delete obj.name;
- 第二种方式
let obj = new Object({
'name': 'aaa',
'age': 18
})
// 注意,这种写法name要加引号
delete obj['name'];
对象属性查看操作
- 查看所有属性
let obj = new Object({
'name': 'aaa',
'age': 18
})
// 查看自身所有属性
Object.keys(obj);
// 查看自身属性+公共属性(__proto__)
console.dir(obj);
// 判断一个属性是自身的还是共有的
obj.hasOwnProperty('toString');
- 查看单个属性
let obj = new Object({
'name': 'aaa',
'age': 18
})
// 第一种
obj.name;
// 第二种
obj['name']
对象属性新增和修改
- 单个属性修改
let obj = new Object({
'name': 'aaa',
'age': 18
})
// 第一种
obj.name = 'fredman';
// 第二种
obj['name'] = 'fredman';
- 批量属性修改
let obj = new Object({
'name': 'aaa',
'age': 18
})
Object.assign(obj, {'a': 1, 'b': '2'});
修改/增加共有属性
不推荐,不要学,也别改
'name' in obj和obj.hasOwnProperty('name') 的区别
- in语句会查询自身属性+共有属性
- hasOwnProperty只查询自身属性