对象遍历的三种常用方法和区别

116 阅读1分钟
五种方法的介绍
  1. for in循环是最基础的遍历对象的方式,它还会得到对象原型链上的属性
  2. Object.keys()是ES5新增的一个对象方法,该方法返回对象自身属性名组成的数组,他会自动过滤掉原型链上的属性和不可枚举的属性,然后可以通过数组的forEach()方法来遍历。
  3. Object.getOwnPropertyNames()是ES5新增的一个对象方法,该方法返回对象自身属性名组成的数组,包括不可枚举的属性,也可以通过数组的forEach()方法来遍历。 4. Object.getOwnPropertySymbols()方法返回对象自身的 Symbol 属性组成的数组,不包括字符串属性 5. Reflect.ownKeys()方法是 ES5 新增的静态方法,该方法返回对象自身所有属性名组成的数组,包括不可枚举的属性和 Symbol 属性
代码效果演示
 function Obj(name, sex) {
        //基本属性
        this.name=name,
        this.sex=sex
      }
      Obj.prototype.age = 18
      Obj.prototype.behavior = function() {
        console.log('学习')
      }
      const obj1 = new Obj('zs', '男')
         for (const key in obj1) {
        console.log('forin', key)
      }
      Object.keys(obj1).forEach((item) => {
        console.log('obj.key', item)
      })
      Object.getOwnPropertyNames(obj1).forEach((item) => {
        console.log('obj.getOwnPropertyNames', item)
      })

image.png

三种方法的对比

image.png