对象
- 无序的数据集合
- 健值对的集合
声明对象的两种语法
let obj = { 'name' : 'jack','age' : 18 }
let obj = new Object( { 'name' : 'jack' } )
如何删除对象的属性
通常使用
delete obj['属性名']来删除对象的属性,而obj.属性名 = undefined只会将属性值变成undefined,但是属性名还是存在的。
如何查看对象的属性
第一种:查看自身所有属性
let obj = {name : 'jack',age : 18}
Object.keys(obj) //查看自身所有属性
Object.values(obj) //查看所有值
Object.entries(obj) //查看所有属性+值
第二种:查看自身+共有属性
let obj2 = {name : 'jack',age : 18}
console.dir(obj2) //以目录的形式打印出
//或者使用__proto__ 直接打印出共有属性(不推荐,不规范)
obj2.__proto__
如何修改或增加对象的属性
- 改自身:
obj['name'] = 'jack' - 批量改自身:
Object.assign(obj,{age:18,gender:'man',...}) - 改共有属性:
Object.prototype['toString'] = 'xxx' - 改原型:
let common = {name : 'jack', age : 18}
let obj = Object.create(common)
'name' in obj和obj.hasOwnProperty('name') 的区别
name' in obj是查看属于自身的属性obj.hasOwnProperty('name')是判断一个属性是否是共有的,是返回true,否的话返回false