/**
* 判断是否为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);
},
jQuer源码学习(二):$.isPlainObject(obj)
最新推荐文章于 2020-02-04 11:13:59 发布