ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryのソースコード解析のmakeArrayメソッド
jQueryでは、makeArrayはプライベートメソッドであり、主に「配列のようなオブジェクト」を配列に変換するために使用されます。
それでは、「配列のようなオブジェクト」とは何ですか?
たとえば、すべての function には arguments オブジェクトがあり、これは実際のパラメータのリストであり、length 属性を持つこともできます。 subscript を通じてアクセスします。
function foo(){ //1 console.log(arguments.length); //10 console.log(arguments[0]); } foo(10);
さらに、HTMLCollection、NodeListなどの型のオブジェクトも「配列のようなオブジェクト」です。
それらには2の共通点があります:
1。 2. 要素には添え字を使用してアクセスできます。
配列と比較して、配列のようなオブジェクトには便利な API が多くないため、多くのフレームワークが変換メソッドを提供しています。
最も簡単な方法は、
Array.prototype: function makeArray(array){
return Array.prototype.slice.call(array);
}
のsliceメソッドを使用することですが、
は初期のIEと互換性を保つために独自の実装を提供しています。
var makeArray = function(array){
//存储元素的新数组
var ret = [];
if(array != null){
var i = array.length;
/*
分别对应四种非类数组对象情况:
1.没有length属性
2.为字符串
3.是函数
4.是window对象
*/
if(i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval)
ret[0] = array;
else
while(i)
ret[--i] = array[i];
}
return ret;
};
ポイント: 1 があります。パラメータが渡されなかった場合でも、空の配列が返されます。
2.
が渡されると、要素の新しい配列が返されます。 3.
非配列型オブジェクトが渡された場合、このオブジェクトは新しい配列の最初の要素として使用されます。
以上がjQueryのソースコード解析のmakeArrayメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。