对象object
定义:没有顺序的数据集合
键值对的集合
语法:
let obj = { 'name': 'frank', 'age': 18 }
let obj = new Object({'name': 'frank'}) //这是正确写法,但一般用上面的写法,简单
console.log({ 'name': 'frank', 'age': 18 })
该对象内部包含两个键值对(又称为两个“成员”),
第一个键值对是'name': 'frank'
其中 'name'是键名(成员的名称),字符串'frank'是键值(成员的值)。
键名与键值之间用冒号分隔
第二个键值对是 'age': 18 , 'age'是键名,18 是键值。
两个键值对之间用逗号分隔。
设置变量键名
如果要将变量a变为'xxx',需要加[] =>[a]
删除属性
delete obj.xxx
即可删除 obj 的 xxx 属性
如何查看删除成功,成功返回false
'xxx' in obj === false
查看属性
查看自身属性和共有属性
判断属性是自身的还是共有的
'name' in obj和obj.hasOwnProperty('name') 的区别
-
in是查看是否有这个属性,并不知道这个属性是你自己的还是共有的
-
obj.hasOwnProperty('name') 到底是不是自己的
原型
- 每个对象都有原型
1. 原型里存着对象的共有属性
2. 比如 obj 的原型就是一个对象
3. obj.__proto__ 存着这个对象的地址
4. 这个对象里有 toString / constructor / valueOf 等属性
- 对象的原型也是对象
所以对象的原型也有原型
obj = {} 的原型即为所有对象的原型
这个原型包含所有对象的共有属性,是对象的根
这个原型也有原型,是 null
查看属性
- 两种方法查看属性
- 中括号语法:obj['key'] 建议使用这一种语法
- 点语法:obj.key
修改或增加属性
直接赋值
批量赋值