JavaSam 发表于 2013-1-29 13:35:13

jQuer源码学习(二):$.isPlainObject(obj)

/** * 判断是否为object * @param {Object} obj */            isPlainObject: function(obj){                //必须是object                /**               * 因为IE,我们还必须检查构造器属性,以确保节点对象和窗口对象也不能通过               */                if (!obj || jQuery.type(obj) !== "object" ||obj.nodeType || jQuery.isWindow(obj)) {                  return false;                }                              try {                  // 如果obj没有constructor属性并且obj的原型链中没有obj返回false                  if (obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) {                        return false;                  }                }               catch (e) {                  // IE8,9 会抛出 throw exceptions on certain host                  return false;                }                              var key;                for (key in obj) {                }/** * 如果key不会被赋值则返回fasle */                return key === undefined || hasOwn.call(obj, key);            },
页: [1]
查看完整版本: jQuer源码学习(二):$.isPlainObject(obj)