伪数组,转变成一个真正的数组。

 

  • 具有length属性;
  • 按索引方式存储数据;
  • 不具有数组的push()、pop()等方法;

  伪数组无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push()、pop()等方法,但仍可以对真正数组遍历方法来遍历它们。这种对象有很多,比较特别的是function内的arguments对象,还有像调用getElementsByTagName, document.childNodes之类的,它们都返回的NodeList对象都属于伪数组,也称为类数组,还有自定义的对象,也属于伪数组。我们可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象。

代码例子如下:

1 var fakeArray01 = {0:'a',1:'b',length:2};//这是一个标准的伪数组对象 
2 var arr01 = Array.prototype.slice.call(fakeArray01); 
3 alert(arr01[0]);//a 
4 var arr02 = [].slice.call(fakeArray01); 
5 alert(arr02[0]);//a 

还有就是,jQuery中的$()对象都是伪数组对象,其中保存的是DOM对象,基于此,也就更好理解jQuery中的this!

posted @ 2017-03-13 23:26  花儿香  阅读(215)  评论(0)    收藏  举报