声明对象的两种语法
-
1.常用的简便写法
let obj = {'name': 'frank', 'age':18} -
2.正规的写法:let 对象名=new Object({'键名(属性名)':'键值(属性值)'})
let obj = new Object({'name': 'frank'})注意
- 键名是字符串,不是标识符
- 引号可以省略,就算引号省略了,键名还是字符串
- Object.keys(obj)可以获得名为obj的对象的所有键名(属性名)(key)
如何删除对象的属性
- 1.delete obj.xxx
- 2.delete obj['xxx']
以上两种写法都可以删除对象obj中名为xxx的属性
如何查看对象的属性
-
查看自身所有属性:
Object.keys(obj) -
查看自身+共有属性:
console.dir(obj) -
如何判断一个属性是自身的还是共有的
obj.hasOwnProperty('XXX') -
查看某一个属性:
obj['name']或者obj.name
如何修改或增加对象的属性
-
let obj={'name':'frank'} -
obj.name='frank'其中name是字符串 -
obj['name']='frank' -
obj['na'+'me']='frank' -
let key='name';obj[key]='frank' -
批量赋值可以用
Object.assign(obj,{'age':18,'gender':'man'}),其中obj是对象名,age键名,18键值 -
修改共有属性
Object.prototype['toString']='xxx' -
修改隐藏属性
let obj = Object.create(common)
'name' in obj和obj.hasOwnProperty('name') 的区别
-
'name' in obj查看属性name是否在obj里,但是它无法区分这个属性是自身特有的还是共有的。 -
obj.hasOwnProperty('name')用来检测name是否为obj特有的属性还是共有的属性,如果是特有的返回true,如果是共有的则返回false