关于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,目前就理解到这里了,就酱!