es6遍历对象属性的5种方法

291 阅读1分钟
  1. for...in

遍历自身继承的可枚举属性(不含symbol属性)。 通常需加 Object.prototype.hasOwnProperty 判断是否为自有属性

  1. Object.keys

返回对象自身不含Symbol的所有可枚举属性组成的数组

  1. Object.getOwnPropertyNames

返回对象自身的,非Symbol,但包含所有不可枚举的属性组成的数组

  1. Object.getOwnPropertySymbols

返回对象自身的所有Symbol属性组成的数组

  1. Reflect.ownKeys

返回对象的所有自有属性组成的数组,包含 不可枚举Symbol 属性

所以,对于一个对象,在忽略其继承的属性的情况下,获取到的属性集合的数量排序为 Reflect.ownKeys > Object,getOwnPropertyNames > Object.keys > Object.getOwnPropertySymbols