Heim >Web-Frontend >js-Tutorial >jQuery-Quellcode-Analyse makeArray-Methode

jQuery-Quellcode-Analyse makeArray-Methode

黄舟
黄舟Original
2017-07-19 09:49:201503Durchsuche

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 jede

Funktion 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);
Darüber hinaus sind auch Objekte von Typen wie

HTMLCollection, NodeList "Array-ähnliches Objekt".

Sie haben

2 Punkte gemeinsam:

1 haben das Attribut

Lä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 der

slice-Methode für Array.prototype:

	function makeArray(array){
		return Array.prototype.slice.call(array);
	}	
aber

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;
	};
Die Auswirkung beträgt

3 Punkte: 1 Auch wenn keine Parameter übergeben werden, wird ein leeres Array zurückgegeben.

2. Wenn

Array-ähnliches Objekt übergeben wird, wird ein neues Element-Array zurückgegeben.

3. Wenn ein

Nicht-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!

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