Maison  >  Article  >  interface Web  >  Analyse du code jQuery quatre méthodes statiques use_jquery

Analyse du code jQuery quatre méthodes statiques use_jquery

WBOY
WBOYoriginal
2016-05-16 15:49:171310parcourir

Chaque méthode dans jQery a une analyse de code correspondante, qui est très détaillée. Veuillez consulter l'introduction ci-dessous :

Méthode isFunction

Objet utilisé pour tester s'il s'agit d'une fonction

Exemple :

function stub() {
  }
var objs = [
      function () {},
      { x:15, y:20 },
      null,
      stub,
      "function"
     ];
    jQuery.each(objs, function (i) {
    var isFunc = jQuery.isFunction(objs[i]);
    $("span:eq( " + i + ")").text(isFunc);
 })

Résultat de l'exécution :

Copier le code Le code est le suivant :

[ vrai, faux, faux, vrai, faux ]

Analyse du code source :

// See test/unit/core.js for details concerning isFunction.
// Since version 1.3, DOM methods and functions like alert
// aren't supported. They return false on IE (#2968).
isFunction: function( obj ) {
   return jQuery.type(obj) === "function";
},

Tout d'abord, laissez-moi vous dire qu'il y a un bug depuis la version 1.3. Certaines méthodes et fonctions DOM telles que alert retourneront false dans IE Après avoir regardé ce bug, car la méthode toString et la méthode valueOf le seront. réécrit, quelqu'un a proposé d'utiliser la méthode instanceof détecte mais il y a toujours un problème dans ie6. Jusqu'à présent, ce bug n'a pas été résolu. Pour plus de détails, vous pouvez vous référer à la page des bugs du site officiel. Parce que j'analyse la 1.7.1, je suivrai d'abord cette version. Cette méthode consiste simplement à appeler la méthode type. déterminer si le résultat renvoyé est une fonction de chaîne

Méthode isArray

Objet utilisé pour tester s'il s'agit d'un tableau

Exemple :

$("b").append( " + $.isArray([]) );//<b>true</b>

isArray: Array.isArray || function( obj ) {
    return jQuery.type(obj) === "array";
 },

Utilisez le résultat de retour de la méthode type directement comme isFunctoin

Méthode isNumeric

Détermine si son argument est un nombre.

La méthode $.isNumeric() vérifie si son argument représente une valeur numérique. Si c'est le cas, cela renvoie vrai. Sinon, il renvoie faux. Le paramètre peut être de n'importe quel type

Exemple :

$.isNumeric("-10"); // true
$.isNumeric(16);   // true
$.isNumeric(0xFF);  // true
$.isNumeric("0xFF"); // true
$.isNumeric("8e5"); // true (exponential notation string)
$.isNumeric(3.1415); // true
$.isNumeric(+10);  // true
$.isNumeric(0144);  // true (octal integer literal)
$.isNumeric("");   // false
$.isNumeric({});   // false (empty object)
$.isNumeric(NaN);  // false
$.isNumeric(null);  // false
$.isNumeric(true);  // false
$.isNumeric(Infinity); // false
$.isNumeric(undefined); // false

Analyse du code source :

Copier le code Le code est le suivant :

isNumeric : fonction (obj) {
           return !isNaN( parseFloat(obj) ) && isFinite( obj );
},

Cette méthode ne détermine pas le type Number mais un type qui ressemble à un nombre. Tant que le paramètre transmis contient un nombre, il retournera true. Tout d'abord, utilisez la méthode parseFloat pour convertir le paramètre en tableau. Cette méthode conservera la partie numérique du paramètre pour le filtrage. Supprimera les autres parties, si le résultat n'est pas NaN et ne dépasse pas la valeur maximale, c'est vrai, sinon il renvoie faux

.

Méthode isWindow

Utilisé pour tester s'il s'agit d'un objet fenêtre

<div class="codetitle"><span><a style="CURSOR: pointer" data="41657" class="copybut" id="copybut41657" onclick="doCopy('code41657')"><U>复制代码</U></a></span> 代码如下:</div><div class="codebody" id="code41657">isNumeric: function( obj ) {
    return !isNaN( parseFloat(obj) ) && isFinite( obj );
},
</div>

Une méthode approximative pour déterminer si l'objet est une fenêtre. Si l'objet transmis est satisfait et possède une méthode setInterval, l'objet est considéré comme un objet fenêtre. Cette méthode a maintenant été modifiée pour déterminer s'il s'agit d'un objet fenêtre. objet window. Les détails seront analysés plus tard. J'espère que vous apprécierez tous le contenu ci-dessus.

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