Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erklärung zur Verwendung der Funktion .makeArray() in jQuery

Detaillierte Erklärung zur Verwendung der Funktion .makeArray() in jQuery

黄舟
黄舟Original
2017-07-19 09:22:311424Durchsuche

Die Funktion

jQuery.makeArray() wird verwendet, um ein Array-ähnliches Objekt in ein echtes Array-Objekt umzuwandeln.

Das sogenannte „array-like object“ ist ein reguläres Object-Objekt, aber es ist einem Array-Objekt sehr ähnlich: Es hat ein Längenattribut und Zahlen wie 0, 1 , 2, 3... als Attributname.

Aber es ist doch kein Array, und es gibt keine integrierten Methoden, die vom Prototypobjekt des Arrays geerbt werden (zum Beispiel: push(), sort() usw.). .).


jQuery.makeArray( object )

Hinweise:

  • Ein Array-ähnliches Objekt, es sollte bei Am wenigsten Mit dem Längenattribut kann es keine „Elemente“ haben, selbst wenn der Wert 0 ist (entspricht einem leeren Array).

  • Wenn der Parameter object kein Längenattribut hat, handelt es sich nicht um ein Array-ähnliches Objekt. jQuery.makeArray() wird direkt als Element im Ergebnisarray behandelt.

  • Obwohl String-Objekte ein Längenattribut haben, werden sie im Allgemeinen nicht als Array-ähnliche Objekte betrachtet. Die Funktion behandelt es weiterhin direkt als Element im Ergebnisarray.

  • Wenn das größte numerische Attribut des Objekts größer oder gleich dem Längenattribut ist, hat das Längenattribut Vorrang und numerische Attribute, die größer oder gleich seinem Wert sind, werden ignoriert.

Rückgabewert

jQuery.makeArray()Der Rückgabewert der Funktion ist vom Typ Array und gibt das konvertierte Array-Objekt zurück.

---------------------------------------------------- --- -------------------------------- ---

Array-ähnliche Objekte kommen sehr häufig vor, wie zum Beispiel das jQuery-Objekt, das NodeList-Objekt und die Argumente-Objekte darin Funktionen, die wir häufig verwenden, sind alle Array-ähnliche Objekte. Sie verfügen alle über ein Längenattribut und der Zugriff auf die entsprechenden Elemente oder Parameter erfolgt über numerische Attribute. Da es sich jedoch letztlich nicht um echte Array-Objekte handelt, können sie die integrierten Methoden des Array-Gegenstücks nicht verwenden. Mit der Funktion jQuery.makeArray() können wir ein Array-ähnliches Objekt in ein echtes Array-Objekt umwandeln und dabei die integrierten Methoden des Array-Objekts verwenden.

Kastanie:


//在当前页面内追加换行标签和指定的HTML内容function w(html) {    //document.body.innerHTML += "<br/>" + html;    console.log(html);
}var obj = {    0: "CodePlayer",    1: "Hello",    2: 18,    3: true};
obj.length = 4;// 类数组对象不是真正的数组w(obj instanceof Array); // falsevar arr = $.makeArray(obj);
w(arr instanceof Array); // truew(arr.join(" ")); // CodePlayer Hello 18 truew(arr.length); // 4var obj2 = {};
obj2[2] = "DIY";
obj2.length = 1;var arr2 = $.makeArray(obj2);
w(arr2 instanceof Array); // truew(arr2.length); // 1var obj3 = {};
obj3.length = 0;var arr3 = $.makeArray(obj3);
w(arr3 instanceof Array); // truew(arr3.length); // 0var obj4 = {};// 由于obj4没有length属性,直接将其转换为结果数组中的一个元素var arr4 = $.makeArray(obj4);
w(arr4 instanceof Array); // truew(arr4.length); // 1w(arr4[0]); // [object Object]// 虽然字符串有length属性,但它仍被视作结果数组中的一个元素var arr5 = $.makeArray("CodePlayer");
w(arr5 instanceof Array); // truew(arr5.length); // 1w(arr5[0]); // CodePlayer

Unsere häufig verwendeten jQuery-Objekte, NodeList-Objekte und Argumentobjekte sind ebenfalls Klassen Array-Objekt.


// jQuery对象也是一个类数组对象var $p = $("p");var arr1 = $.makeArray( $p );
w( $p instanceof Array ); // falsew( arr1 instanceof Array ); // true// NodeList对象也是一个类数组对象var p = document.getElementsByTagName("p");var arr2 = $.makeArray( p );
w( p instanceof Array ); // falsew( arr2 instanceof Array ); // truefunction foo(a, b){    // arguments对象也是一个类数组对象
    var arr3 = $.makeArray( arguments );
    w( arguments instanceof Array ); // false   
    w( arr3 instanceof Array ); // true}

foo(1, 2);


Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung zur Verwendung der Funktion .makeArray() in jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn