关于js中伪数组

伪数组:

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

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

代码例子如下:

var fakeArray01 = {0: 'a', 1: 'b', length: 2};
var arr01 = Array.prototype.slice.call(fakeArray01);
alert(arr01[0]);
var arr02 = [].slice.call(fakeArray01);
alert(arr02[0]);

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

results matching ""

    No results matching ""