JS 对象基本用法

105 阅读1分钟

声明对象的两种语法

常用第一种简洁,第二种是规范的写法

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__的指向