声明对象的两种语法
常用第一种简洁,第二种是规范的写法
let obj = {name:'znn',age:'18'}
let obj2 = new Object({name:'znn',age:'18'})
如何删除对象的属性
delete obj.name
delete obj['name']
判断对象中存在属性的坑:
'xxx' in object 会查到原型上去
obj.hasOwnProperty('xxx') 只会查询到obj这个对象上
例如:
obj = {
name:'znn',
age:'18',
xxx:undefined
}
'xxx' in obj => true
obj.xxx === undefined => true
obj.hasOwnProperty('xxx') => true
'yyy' in obj => false
obj.yyy === undefined => true
obj.hasOwnProperty('yyy') => false
如何查看对象的属性
obj.keys(obj)
obj.values(obj)
obj.entries(obj)
如何修改或增加对象的属性
obj['name'] = 'znnnn'
obj.name = 'znnnn'
obj.assign(obj,{p1:1,p2:2,p3:3})
Object.prototype['xxx'] = 'yyy'
let obj = Object.create({a:1,b:2})
相当于在obj在创建时就改变__proto__的指向