类数组对象

Apr 30, 2019 5:06·189 words ·1 minutes read

  • 只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为他是类数组对象
  • 类数组对象不仅是效果上跟数组相似,并且在某些操作上也相同:

      //定义数组和类数组对象
      var arr = [1,2,3];
      var obj = {0: 1, 1: 2, 2: 3, length: 3};
      //元素读写操作
      console.log(arr[0], obj[0])//1, 1
      console.log(arr['length'], obj['length'])//3, 3
      arr[0] = 9;
      obj[0] = 9;
    
      //遍历
      for(var i = 0, len = arr.length; i < len; i++) {
          arr[i]....
      }
      for(var i = 0, len = obj.length; i < len; i++) {
          obj[i]....
      }
    
  • 数组可以使用 forEach, 类数组对象也可以吗?

    • 不可以

    • 因为 forEach() 方法 属于 Array​.prototype​.for​Each()