这篇文章来回答[url=http://www.1sucai.cn/article/24954.htm]javascript通用循环遍历方法forEach[/url]中最后提到的关于伪数组的问题。
什么是伪数组
能通过Array.prototype.slice转换为真正的数组的带有length属性的对象。
这种对象有很多,比较特别的是arguments对象,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。
我们可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象。
来看个示例:
[url=http://www.google.com/codesearch/p?hl=en#W9JxUuHYyMg/trunk/src/array.js]array.js[/url] 的源码,可以将 slice 的内部实现简化为:
[url=http://lifesinger.org/blog/2010/05/array-prototype-slice/]http://lifesinger.org/blog/2010/05/array-prototype-slice/ [/url]