偽數組:
- 具有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,目前就理解到這里了,就醬!