js循环 Array-like 对象

getElementsByClassName()方法返回的元素集合,就是类数组元素,

类数组元素

1.有索引,索引可访问元素

2.有length 属性

3.没有数组方法,如 push, forEach and indexOf.

如何循环Array-like ?

  1. 得到真实数组的forEach方法  Array.prototype.forEach()
  2. 使用函数的call方法,把Array-like 对象中每个元素分配 给 .forEach方法中的this

Array.prototype.forEach.call();

Array.prototype 相当于一个数组,

shorthand for Array.prototype — an Array! You can write[].forEach.call(…) if you don’t mind instantiating a new array.