In jQuery ist makeArray eine private Methode, die hauptsächlich zum Konvertieren von „Array-ähnlichen Objekten“ In Array konvertieren.
Was ist also ein„Array-ähnliches Objekt“ ?
Zum Beispiel hat jedeFunktion ein Argumente-Objekt, nämlich it ist eine Liste tatsächlicher Parameter mit Länge-Attributen, und auf die tatsächlichen Parameter kann auch über Indizes zugegriffen werden.
function foo(){ //1 console.log(arguments.length); //10 console.log(arguments[0]); } foo(10);
HTMLCollection, NodeList "Array-ähnliches Objekt".
Sie haben2 Punkte gemeinsam:
1 haben das AttributLänge.
2. Auf Elemente kann über Indizes zugegriffen werden. Im Vergleich zu Arrays fehlen arrayähnlichen Objekten viele praktische APIs, sodass viele Frameworks Konvertierungsmethoden bereitstellen. Der einfachste Weg ist die Verwendung derslice-Methode für Array.prototype:
function makeArray(array){ return Array.prototype.slice.call(array); }
jQuery In Um mit dem frühen IE kompatibel zu sein, wird unsere eigene Implementierung bereitgestellt.
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; };
3 Punkte: 1 Auch wenn keine Parameter übergeben werden, wird ein leeres Array zurückgegeben.
Array-ähnliches Objekt übergeben wird, wird ein neues Element-Array zurückgegeben.
3. Wenn einNicht-Array-Objekt übergeben wird, wird dieses Objekt als erstes Element des neuen Arrays verwendet.
Das obige ist der detaillierte Inhalt vonjQuery-Quellcode-Analyse makeArray-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!