「クラス配列」とは何か知っていますか.
1663 ワード
紹介する
クラス配列:配列に似たオブジェクトであり、元のバイナリデータにアクセスするためのメカニズムを提供しますが、本当の配列ではありません.
jsにはクラス配列のオブジェクトがたくさんあります.例えば
MDN-JavaScriptタイプ化配列
オブジェクトのプロパティ
1.所有
2.数値の下付き文字でオブジェクトにアクセスできます
3.slice、popなどの配列プロトタイプメソッドは使用できません
4.使用
5.真の配列に変換できる
Array.prototype.slice.call()
Array.from()
6.その他の属性をカスタマイズ可能
クラス配列の作成
クラス配列:配列に似たオブジェクトであり、元のバイナリデータにアクセスするためのメカニズムを提供しますが、本当の配列ではありません.
jsにはクラス配列のオブジェクトがたくさんあります.例えば
arguments
・NodeList
・HTMLCollection
・jQuery
・などです.MDN-JavaScriptタイプ化配列
オブジェクトのプロパティ
1.所有
length
属性var a = document.getElementsByTagName("div");
a.__proto__; // HTMLCollection {}
a.length; // 44
2.数値の下付き文字でオブジェクトにアクセスできます
a[0]; // ...
3.slice、popなどの配列プロトタイプメソッドは使用できません
a.slice; // undefined
4.使用
instanceof
操作が該当しないArray
a instanceof Array; // false
a instanceof Object; // true
5.真の配列に変換できる
Array.prototype.slice.call()
var arr = Array.prototype.slice.call(a)
arr instanceof Array; // true
Array.from()
var arr = Array.from(a)
arr instanceof Array; // true
6.その他の属性をカスタマイズ可能
a.name = 'div ';
クラス配列の作成
// 1.
var array_like = {};
// 2.
array_like[0] = 'a';
array_like[1] = 'b';
// 3. length push
array_like.length = 2;
array_like.push = Array.prototype.push;
// 4.
array_like.push('c')
// 5.
console.log(array_like[2]) // c
console.log(array_like.length) // 3
console.log(array_like instanceof Array) // false
// 6.
var arr = Array.prototype.slice.call(array_like);
arr instanceof Array; // true