Maison >interface Web >js tutoriel >Lecture du code de .makeArray() dans jQuery
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
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!