js類陣列物件(array-like objects)簡單介紹
在一些關於javascript文章中,可能會有類陣列這個名詞的提及。
也有把物件當做一個陣列操作的例子,看如下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function func(a,b,c,d){ var arr=[].slice.call(arguments); console.log(arr); } func(1,2,3,4);
上面的程式碼中可以將arguments物件轉換為一個真正的陣列,呼叫的是陣列的slice()方法。
arguments物件就是一個類陣列(array-like objects)。
那麼如何判斷什麼樣的物件才是一個類陣列,下面就做一下簡單介紹:
網上的資料對於類陣列的解釋如下:
[HTML] 純文字檢視 複製程式碼So what exactly makes an object “array-like”? The basic contract of an array object amounts to two simple rules. It has an integer length property in the range 0...2^32 – 1. The length property is greater than the largest index of the object. An index is an integer in the range 0...2^32 – 2 whose string representation is the key of a property of the object.
從上面的文字可以看出,類陣列物件主要有如下幾個特徵:
(1).物件要有一個屬性值為整數的length屬性,並且值得大小介於0到2^32 – 1之間。
(2).length屬性值要大於物件的最大的index屬性值。
(3).index屬性是作為物件的屬性的key存在的。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼1: "a", 2: "b", 4: "c", length:5 } var arr=[].slice.call(obj); console.log(arr)
上面的程式碼也可以正確執行,但是並不是所有的array物件的方法都可以被類陣列物件使用。
相關文章
- 簡單介紹js 陣列 fill() 填充方法JS陣列
- JSON物件簡單介紹JSON物件
- 簡單介紹Lua一維陣列與多維陣列的使用陣列
- JS-陣列、函式、類與物件JS陣列函式物件
- 簡單介紹最新python 字串陣列互轉問題Python字串陣列
- 簡單介紹C#使用物件序列化類庫MessasgePackC#物件
- Shell 陣列介紹陣列
- AWK 陣列介紹陣列
- js--陣列的reduce()方法的使用介紹JS陣列
- vue js 物件轉陣列VueJS物件陣列
- js陣列物件去重JS陣列物件
- js物件陣列去重JS物件陣列
- 深入學習js之——類陣列物件與arguments #11JS陣列物件
- OpenGL Android課程七:介紹Vertex Buffer Objects(頂點緩衝區物件,簡稱:VBOs)AndroidObject物件
- JS--陣列物件合併JS陣列物件
- JS 複製陣列和物件JS陣列物件
- js:判斷物件或陣列JS物件陣列
- JS 中特殊的物件-陣列JS物件陣列
- js 物件轉為js陣列 && Object方法JS物件陣列Object
- 全面介紹JavaScript陣列方法JavaScript陣列
- ES6 陣列介紹陣列
- js 去掉陣列物件中的重複物件JS陣列物件
- js迴圈中reduce的用法簡單介紹JS
- 實體類定義陣列物件,和物件陣列物件
- js物件陣列Date的比較JS物件陣列
- js合併兩個陣列物件JS陣列物件
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- Map簡單介紹