声明对象的两种语法
let obj = { 'name': 'frank', 'age': 18 }
let obj = new Object({'name': 'frank'})
如何删除对象的属性
delete obj.xxx或delete obj[‘xxx’]
即可删除obj的xxx属性
注意区分
含有属性名,但值为undefined
'xxx' in obj ===undefined
obj.xxx ===undefined
不能断定’xxx’是否为obj的属性
不含属性名
‘xxx’ in obj = = = false
如何查看对象的属性(读属性)
查看自身所有属性
Object.keys(obj)
查看key
Object.entries(obj)
查看所有
查看自身+共有属性
console.dir(obj)
或者自己依次用Object.keys打印出obj.proto(不推荐用)
判断一个属性是自身的还是共有的
obj.hasOwnProperty('toString')
看单个属性
obj['name'] (推荐用)
这里的name是字符串
obj.name
这里的name是字符串
obj[name]
这里的name是变量
注:读对象的属性时,
如果使用 [ ] 语法,那么 JS 会先求 [ ] 中表达式的值,注意区分表达式是变量还是常量。
如果使用点语法,那么点后面一定是 string 常量。
如何修改或增加对象的属性(写)
自身属性
obj['name'] = 'jack'
更改自身属性
Object.assign(obj, {age: 18, gender: 'man'})
批量赋值
共有属性
Object.prototype['toString'] = 'xxx'
改共有属性
隐藏属性
let obj = Object.creat(common)
改原型
‘name’ in obj和obj.hasOwnProperty(‘name’) 的区别
‘name’ in obj可以判断obj对象不含xxx属性
自身属性和共有属性都返回true
obj.hasOwnProperty(‘name’)用来判断一个属性是obj自身的还是共有的
仅仅是自身属性才返回true
延伸
Object.defineProperty()
用于在一个对象上定义新的属性或修改现有属性, 并返回该对象.
145

被折叠的 条评论
为什么被折叠?



