JS对象基本用法

123 阅读1分钟

声明对象语法

1.let obj = {key:'value'}(快捷写法)
2.let obj = new Object({key:'value'})(标准写法)

对象的增删改查

删除对象属性

1.delete obj['key']
2.delete obj.key

查看对象属性

1.obj.key
2.obj.['key']
查看对象!自身!所有属性名:Object.keys(obj)
查看对象!自身!所有属性值:Object.values(obj)
查看自身+共有属性:console.dir(obj)
                 或用Object.keys遍历所有原型
查看对象是否含有属性名:'xxx' in obj
查看对象的属性是自身的还是共有的: obj.hasOwnProperty('toString')
注意:1.obj.key === undefined 不能判断对象没有对应属性,因为对应的属性值可能为undefined2.'xxx' in obj 与 obj.hasOwnProperty('xxx')的区别是,前者的true表示key是自身的或共有的,后者的true表示key是自身的;前者的false表示key不存在,后者的false表示key不存在或者是共有的。

更改和增加对象属性(若无则加,已有则改)

直接赋值
obj.key = 'value'
obj['key'] = 'value'
批量赋值
Object.assign(obj,{key:'value',p1:'p2',.......}
修改共有属性(无法通过自身增改共有属性)
1.obj.__proto__.toString =  'xxx'(不推荐用__proto__)
2.Object.prototype.toString = 'xxx'
一般来说,不要修改原型,会引发许多问题

修改隐藏属性指向

1.obj.__proto__ = common(不推荐使用__proto)
2.obj = Object.create(common)(含义是要更改就一开始创建对象时就更改)