/**
* 判断是否为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)
最新推荐文章于 2021-07-09 11:00:49 发布
本文介绍了一种用于判断JavaScript中对象的方法,特别关注于如何区分普通对象与特定类型的对象,如节点对象和窗口对象。
195

被折叠的 条评论
为什么被折叠?



