Maison  >  Article  >  interface Web  >  Lecture du code de .makeArray() dans jQuery

Lecture du code de .makeArray() dans jQuery

黄舟
黄舟original
2017-07-19 09:41:151152parcourir

La fonction makeArray de jquery peut convertir un objet de type tableau en tableau. L'explication officielle de l'API et les exemples de tests sont ici (Convertir). un objet de type tableau dans un véritable tableau JavaScript.) Alors, qu'est-ce qu'un objet de type tableau ? ( objet de type tableau ) C'est la définition de Arrary-Like

Array-Like Object

Soit un véritable tableau JavaScript, soit un objet JavaScript qui contient une propriété length entière non négative. et les propriétés d'index de 0 jusqu'à length - 1 Ce dernier cas inclut les objets de type tableau couramment rencontrés dans le code Web tel que l'objet arguments. et l'objet NodeList renvoyé par de nombreuses méthodes DOM.

Lorsqu'une API jQuery accepte des objets simples ou des objets de type tableau, un objet simple avec une propriété length numérique déclenchera le comportement de type tableau.

contient l'attribut de longueur, et la valeur n'est pas négative, et l'attribut est accessible en fonction de l'indice. Les objets courants de type tableau incluent les aruments, NodeList


// results is for internal usage only result是jquery内部使用的参数,如果不为空则把array并到resuls上
	makeArray: function( array, results ) {
		var ret = results || [];

		if ( array != null ) {
			// The window, strings (and functions) also have 'length'
			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
			var type = jQuery.type( array );
			//array没有length属性,或者为string类型,function类型,window类型,或者黑莓中正则对象,黑莓中正则对象也含有length对象,则push到result
			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
				push.call( ret, array );
			} else {
				//调用merge把类数组array合并到ret
				jQuery.merge( ret, array );
			}
		}

		return ret;
	}

jquery.type appelé ici

jquery.isWindow() 1.7 .1 est jugé en fonction du fait qu'il contient l'attribut setInterval "setInterval" dans obj, et la mise en page suivante est jugée par l'attribut window obj == obj.window


isWindow:function(obj){
			return obj && typeof obj === "object" && "setInterval" in obj;
			//1.7.2: return obj != null && obj == obj.window;
		},


L'explication officielle de l'appel jQuery.merge(frist, second) est ici. La fonction de cette fonction est de fusionner le deuxième tableau ou objet de type tableau dans le premier


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!

Déclaration:
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