关于js中伪数组

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-20 07:16:48

伪数组:

  • 具有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]);//a 
var arr02 = [].slice.call(fakeArray01); 
alert(arr02[0]);//a 

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!