天天看點

javascript怎麼定義類數組對象

javascript定義類數組對象的方法是:1、首先建立一個空對象;2、為對象直接定義數字下标的屬性;3、關鍵點,為對象設定length屬性和splice屬性為數字和函數。

js中類數組對象很多,概念簡單的講就是看上去像數組,又不是數組,可以使用數字下标方式通路又沒有數組方法。

例: arguments , NodeList , HTMLCollection , jQuery 等

類數組對象特性

1、擁有 length 屬性

javascript怎麼定義類數組對象

2、可以使用數字下标的方式通路對象

javascript怎麼定義類數組對象

3、不能使用數組原型的方法(如 slice , pop 等)

javascript怎麼定義類數組對象

4、使用 instanceof 操作不屬于 Array

javascript怎麼定義類數組對象

5、可以轉換為真數組對象

javascript怎麼定義類數組對象

PS:注意在IE8下部分對象無法使用slice方法轉換為真數組對象。

建議使用jquery提供的 $.makeArray() 方法轉換類數組對象

6、通常可定義有其他自定義屬性

javascript怎麼定義類數組對象

類數組對象優點

關于優點我相信不用太多描述,可以讓js和其他背景語言擁有相同的操作方式。

如C#的某些list集合,可以使用數字下标 list[0] 來通路或是使用字元串名稱 list[‘name’] 來通路同一對象

同時還擁有各種自定義方法,自定義屬性,看jquery對象的優雅的通路方式即可知是如此美妙的對象。

如何手動建立類數組對象

回歸主題,如何手動建立類數組對象。

1、首先建立一個空對象

javascript怎麼定義類數組對象

2、為對象直接定義數字下标的屬性,這在其他語言裡是絕對不允許的,對象屬性不能使用數字開頭,但JS裡是可以的,甚至使用中文都可以

javascript怎麼定義類數組對象

3、關鍵點,為對象設定length屬性和splice屬性為數字和函數

javascript怎麼定義類數組對象

PS:設定splice屬性其實是為了欺騙浏覽器的控制台,另其顯示出數組的模樣,可以參考這裡

4、測試

javascript怎麼定義類數組對象

5、全部代碼:

javascript怎麼定義類數組對象

繼續閱讀