zoukankan      html  css  js  c++  java
  • Jquery之isPlainObject源码分析

    今天对Jquery中 isPlainObject 源码分析。

    1.  isPlainObject 方法的作用: 

      用来判断传入参数,是否是对象。

    2. 源码分析:isPlainObject: function( obj ) {

       
    // 1. jQuery.type( obj ): 通过 juery 封装的类型判断方法,如果不是 Object类型,返回false
    // 2.
    obj.nodeType : 用来判断是否是dom 节点, 如果是,返回 false
    // 3.
    jQuery.isWindow( obj ) : 这个方法,很多人可能会误解其意思。 其真正意思是:判断指定参数是否是一个窗口,"窗口"就是浏览器内置的Window对象。 如果是,返回false.
      //
    4. 总的来说,这个if判断的意思就是, 如果 传进来的是 不是 object对象 或者 dom节点 或者 “窗口” 就返回 false;
    if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
          return false;
    }

       try {
          // 此if判断法: 主要是 防止把 “window.location” 当成 Obect 对象。
    // 1.
    obj.constructor : 判断 入参是否 具有 构造函数。
    // 2.
    core_hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) : 判断传入obj 的原型链上是否有 ”isPrototypeOf“ 方法。 如果有则是 object 对象,返回 ture; 注意:只有 Object 对象的原型链上才有 isPrototypeOf 这个方法。
          if ( obj.constructor &&
    !core_hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
    return false;
    }
    } catch ( e ) {
    return false;
    }

    // 返回 ture;
    return true;
    },
  • 相关阅读:
    省选模拟25
    有关树链剖分
    有关矩阵的一点讨论
    洛谷 P3390 【模板】矩阵快速幂
    HDU P2089
    有关动态规划(主要是数位DP)的一点讨论
    HDU P2222 Keywords Search
    普通平衡树Tyvj1728、luogu P3369 (treap)
    POJ P2104 K-th Number
    POJ 3311Hie with the Pie
  • 原文地址:https://www.cnblogs.com/tlsmile/p/8137054.html
Copyright © 2011-2022 走看看