ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript クラス ライブラリがクラス オブジェクトを配列オブジェクトに変換する方法の詳細なコード例

JavaScript クラス ライブラリがクラス オブジェクトを配列オブジェクトに変換する方法の詳細なコード例

伊谢尔伦
伊谢尔伦オリジナル
2017-07-26 11:16:591369ブラウズ

主要なライブラリの処理を見てみましょう:

//jQuery的makeArray 
var makeArray = function( array ) { 
var ret = []; 
if( array != null ){ 
var i = array.length; 
// The window, strings (and functions) also have 'length' 
if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval ) 
ret[0] = array; 
else 
while( i ) 
ret[--i] = array[i]; 
} 
return ret; 
}

jQuery オブジェクトは、dom 要素の保存と処理に主に setArray メソッドに依存して、長さとインデックス、およびパラメータ要件を設定および維持します。 setArray は配列であるため、makeArray のステータスは非常に重要です。このメソッドは、パラメーターがない場合でも空の配列を返すことが保証されています。
Prototype.js の $A メソッド

function $A(iterable) { 
if (!iterable) return []; 
if (iterable.toArray) return iterable.toArray(); 
var length = iterable.length || 0, results = new Array(length); 
while (length--) results[length] = iterable[length]; 
return results; 
}

mootools の $A メソッド

function $A(iterable){ 
if (iterable.item){ 
var l = iterable.length, array = new Array(l); 
while (l--) array[l] = iterable[l]; 
return array; 
} 
return Array.prototype.slice.call(iterable); 
};

Ext の toArray メソッド

var toArray = function(){ 
return isIE ? 
function(a, i, j, res){ 
res = []; 
Ext.each(a, function(v) { 
res.push(v); 
}); 
return res.slice(i || 0, j || res.length); 
} : 
function(a, i, j){ 
return Array.prototype.slice.call(a, i || 0, j || a.length); 
} 
}()

Ext は、より巧妙に設計されており、より強力です。最初から自動的に実行されるため、今後ブラウザを判断する必要がありません。また、結果として得られる純粋な配列を操作する 2 つのオプションのパラメーターもあります。
最後に、Dojo の _toArray を見てみましょう。Dojo の実装は常に非常に奇妙です。 Ext と同様、最後の 2 つのパラメータはオプションですが、2 番目のパラメータはオフセットで、最後のパラメータは既存の配列で、新しいグループ要素をマージするために使用されます。

りー


以上がJavaScript クラス ライブラリがクラス オブジェクトを配列オブジェクトに変換する方法の詳細なコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。