Maison > interface Web > js tutoriel > Méthode makeArray d'analyse du code source jQuery

Méthode makeArray d'analyse du code source jQuery

黄舟
Libérer: 2017-07-19 09:49:20
original
1491 Les gens l'ont consulté

Dans jQuery, makeArray est une méthode privée, qui est principalement utilisée pour convertir des "objets de type tableau" Convertir en tableau.

Alors qu'est-ce qu'un "objet de type tableau"  ?

Par exemple, chaque fonction a un objet arguments, il est une liste de paramètres réels, avec les attributs length, et les paramètres réels sont également accessibles via des indices.

	function foo(){
		//1
		console.log(arguments.length);
		//10
		console.log(arguments[0]);
	}
	
	foo(10);
Copier après la connexion

De plus, les objets de types comme HTMLCollection, NodeList sont également "Objet de type tableau".

Ils ont 2 points en commun :

1 Avoir l'attribut longueur.

2. Les éléments sont accessibles via des indices.

Par rapport aux tableaux, les objets de type tableau manquent de nombreuses API pratiques, c'est pourquoi de nombreux frameworks fournissent des méthodes de conversion.

Le plus simple est d'utiliser la méthode slice sur Array.prototype :

	function makeArray(array){
		return Array.prototype.slice.call(array);
	}	
Copier après la connexion

mais jQuery Dans Afin d'être compatible avec les premiers IE, notre propre implémentation est fournie.

	
	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;
	};
Copier après la connexion

Son impact est de 3 points :
1 Même si aucun paramètre n'est passé, un tableau vide sera renvoyé.

2. Si un objet de type tableau est transmis, un nouveau tableau d'éléments sera renvoyé.

3. Si un objet non semblable à un tableau est transmis, cet objet sera utilisé comme premier élément du nouveau tableau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal