对象的定义
对象是无序的数值集合或者键值对的集合
声明对象的语法
let object = { 'name' : 'zoe' , 'age' : 18 }
let object = new Object({ 'name' : 'zoe' , 'age' : 18 })
-
console.log({ 'name' : 'zoe' , 'age' : 18 })
此为匿名对象
其中,'name'是键名,键名只能是字符串,不是标识符,可以包含任意字符。键名的引号可以省略,省略之后只能写标识符,此时键名还是字符串。
删除对象的属性
语法
delete obj.name
delete obj['name']
-
obj.name=undefined
令属性名的值为空,此时属性名存在,并没有删除
如何查看对象的属性
语法
-
Object.keys(obj)
可以得到obj的所有key -
Object.values(obj)
可以得到obj的所有属性值 -
Object.entries(obj)
查看所有key及其值 -
obj.name
和obj['name']
查看单个属性的值 -
console.dir(obj)
查看自身属性+共有属性
如何修改或增加对象的属性
直接赋值
let obj = {name: 'frank'}
obj.name = 'frank'
obj['name'] = 'frank'
obj['na'+'me'] = 'frank'
-
let key = 'name'; obj[key] = 'frank'
此时key是变量,用变量的值作为属性名,可以把变量用[]括起来。
批量赋值
Object.assign(obj, {age: 18, gender: 'man'})
其中obj是对象名
修改隐藏属性
let common = {kind: 'human'}
let obj = Object.create(common)
obj.name = 'frank'`
'name' in obj和obj.hasOwnProperty('name')的区别
-
'name' in obj
判断属性名是否在对象里面,不会判断是自身还是共有的 -
obj.hasOwnProperty('toString')
判断一个属性是自身的还是共有的