对象

175 阅读2分钟

对象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 是键值。
两个键值对之间用逗号分隔。

设置变量键名

2.png

如果要将变量a变为'xxx',需要加[] =>[a]

删除属性

delete obj.xxx 
    即可删除 obj 的 xxx 属性
    
如何查看删除成功,成功返回false
    'xxx' in obj === false

查看属性

4.png

查看自身属性和共有属性

5.png

判断属性是自身的还是共有的

6.png

'name' in obj和obj.hasOwnProperty('name') 的区别

  • in是查看是否有这个属性,并不知道这个属性是你自己的还是共有的

  • obj.hasOwnProperty('name') 到底是不是自己的

原型

- 每个对象都有原型

1. 原型里存着对象的共有属性

2. 比如 obj 的原型就是一个对象

3. obj.__proto__ 存着这个对象的地址

4. 这个对象里有 toString / constructor / valueOf 等属性

- 对象的原型也是对象

所以对象的原型也有原型

obj = {} 的原型即为所有对象的原型

这个原型包含所有对象的共有属性,是对象的根

这个原型也有原型,是 null

查看属性

  • 两种方法查看属性
  1. 中括号语法:obj['key'] 建议使用这一种语法
  2. 点语法:obj.key

7.png

修改或增加属性

直接赋值

8.png

批量赋值

9.png

1.png

修改隐藏属性

10.png