对象的遍历及存储

1.遍历对象的属性和方法:
第一种
for in
遍历对象中所有 “可枚举” 的属性,包括自有属性和继承的属性

  var obj={
       name:"qianjiaji",
       age:18,
       height:180,
       weight:120
  }
  for(var i in obj){
      console.log(i)
      console.log(obj[i])
  }

第二种
Object.keys(obj)
参数:要返回其枚举自身属性的对象
返回值:一个表示给定对象的所有可枚举属性的字符串数组

 var obj={
       name:"qianjiaji",
       age:18,
       height:180,
       weight:120
  }
 console.log(Object.keys(obj))  

第三种
Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。

 var obj={
       name:"qianjiaji",
       age:18,
       height:180,
       weight:120
  }
 console.log(Object.getOwnPropertyNames(obj))  

第四种
Object.getOwnPropertySymbols(obj)
Object.getOwnPropertySymbols返回一个数组,包含对象自身的所有 Symbol 属性的键名。

 var obj={
       name:"qianjiaji",
       age:18,
       height:180,
       weight:120
  }
 console.log(Object.getOwnPropertySymbols(obj))  

第五种
Reflect.ownKeys(obj)
Reflect.ownKeys返回一个数组,包含对象自身的所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。

 var obj={
       name:"qianjiaji",
       age:18,
       height:180,
       weight:120
  }![在这里插入图片描述](https://img-blog.csdnimg.cn/20200303205902887.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phbWVzSEtL,size_16,color_FFFFFF,t_70)
 console.log(Reflect.ownKeys(obj))  

2.对象的存储
内存:由四部分组成,栈内存 堆内存 代码段 数据段
对象都是一个引用,栈内存里面保存的是一个地址,这个地址指向堆内存,堆内存中保存着对象的属性和方法,方法指向的是代码段
两个个对象之间是相互独立的
结构如下图所示:
在这里插入图片描述

发布了25 篇原创文章 · 获赞 0 · 访问量 637

猜你喜欢

转载自blog.csdn.net/JamesHKK/article/details/104632900