Javascriptの疑似配列には何ですか?どのようになります標準配列に疑似配列?

擬似配列(クラスの配列):

直接、所望の長さの配列メソッドを呼び出したり、任意の特別な属性の振る舞いを持っている、プッシュ、ポップや他の方法の配列を持っていませんが、彼らはまだ本当の配列トラバーサル方法を通過することができますすることができません。ダミーリターンNodeListオブジェクトの配列に属しているすべては一般的にパラメータ引数の機能だけでなく、通話getElementsByTagNameの、document.childNodesなど、。あなたは本当のArrayオブジェクトにArray.prototype.slice.call(fakeArray)配列を使用することができます。



機能ログ(){

VARの引数= Array.prototype.slice.call(引数); //使用抜き方法、実際の配列に引数の配列

args.unshift( '(APP)') ; console.log.apply (コンソール、引数);

};



オブジェクトが擬似配列と呼ばれる以下の基準満たすである:

1の長さ属性を有する

2、インデックスモードに格納されたデータ

3は、アレイは、プッシュ、ポップ等を有していない



、などの

1、機能の引数。

2、document.formsによって、Form.elements、Select.options、document.getElementsByName( )

)(document.getElementsByTagNameを取得、のchildNodes /子供、等セット(HTMLCollection、のNodeList)などが挙げられます。

3、などの特殊書き込み対象、

JSコレクションコードコード

VaRはOBJ = {};
OBJ [0] = "";
OBJ [1] = "2"、
OBJ [2] = "3";
obj.length = 3;


彼らが持っていないいくつかの方法アレイプッシュ、ポップ、シフトは、などが参加します。これらのダミー配列は時々ようにプッシュ、ポップなどを使用することができる、本当の配列に有効にする必要があります。以下は、ユーティリティ関数makeArrayある





のJSコード


機能makeArray(OBJ){
VARのRS = []、LEN = obj.length;
試み{
RS = [] .slice.call(OBJ、0);
}キャッチ(E){//用IE
のための(VARのI = 0、J = OBJ [Iが++];){
rs.push(J);
}
}
戻りRS;
}





次のテスト三の上にダミーアレイであった:

Jsのコード

//関数funを定義し、内部配列引数に変換makeArray

機能//楽しい、アレイに変換makeArray内部引数定義
{関数fun()
; VAR = makeArray進(引数)
アラート(ary.constructor);
}
//コール
楽しい(3,5);
要素p //想定したページ上の複数の通路
VAR document.getElementsByTagName ELS =( "P");
VAR = makeArray ARY1(ELS);
警告(ary1.constructor);
// JS特定のオブジェクト(例えばjQueryオブジェクト)
VAR OBJ = {};
OBJ [0] = "";
OBJ [1] = "2"、
OBJ [2] = "3";
obj.length = 3;

VARのARY2 makeArray =(OBJ)、
警告(ary2.constructor)。
擬似配列(クラスの配列):

直接、所望の長さの配列メソッドを呼び出したり、任意の特別な属性の振る舞いを持っている、プッシュ、ポップや他の方法の配列を持っていませんが、彼らはまだ本当の配列トラバーサル方法を通過することができますすることができません。ダミーリターンNodeListオブジェクトの配列に属しているすべては一般的にパラメータ引数の機能だけでなく、通話getElementsByTagNameの、document.childNodesなど、。あなたは本当のArrayオブジェクトにArray.prototype.slice.call(fakeArray)配列を使用することができます。



機能ログ(){

VARの引数= Array.prototype.slice.call(引数); //使用抜き方法、実際の配列に引数の配列

args.unshift( '(APP)') ; console.log.apply (コンソール、引数);

};



オブジェクトが擬似配列と呼ばれる以下の基準満たすである:

1の長さ属性を有する

2、インデックスモードに格納されたデータ

3は、アレイは、プッシュ、ポップ等を有していない



、などの

1、機能の引数。

2、document.formsによって、Form.elements、Select.options、document.getElementsByName( )

)(document.getElementsByTagNameを取得、のchildNodes /子供、等セット(HTMLCollection、のNodeList)などが挙げられます。

3、などの特殊書き込み対象、

JSコレクションコードコード

VaRはOBJ = {};
OBJ [0] = "";
OBJ [1] = "2"、
OBJ [2] = "3";
obj.length = 3;


彼らが持っていないいくつかの方法アレイプッシュ、ポップ、シフトは、などが参加します。これらのダミー配列は時々ようにプッシュ、ポップなどを使用することができる、本当の配列に有効にする必要があります。以下は、ユーティリティ関数makeArrayある





のJSコード


機能makeArray(OBJ){
VARのRS = []、LEN = obj.length;
試み{
RS = [] .slice.call(OBJ、0);
}キャッチ(E){//用IE
のための(VARのI = 0、J = OBJ [Iが++];){
rs.push(J);
}
}
戻りRS;
}





次のテスト三の上にダミーアレイであった:

Jsのコード

//関数funを定義し、内部配列引数に変換makeArray

機能//楽しい、アレイに変換makeArray内部引数定義
{関数fun()
; VAR = makeArray進(引数)
アラート(ary.constructor);
}
//コール
楽しい(3,5);
要素p //想定したページ上の複数の通路
VAR document.getElementsByTagName ELS =( "P");
VAR = makeArray ARY1(ELS);
警告(ary1.constructor);
// JS特定のオブジェクト(例えばjQueryオブジェクト)
VAR OBJ = {};
OBJ [0] = "";
OBJ [1] = "2"、
OBJ [2] = "3";
obj.length = 3;

VARのARY2 makeArray =(OBJ)、
警告(ary2.constructor)。

おすすめ

転載: www.cnblogs.com/superclound/p/11261506.html