jQuery中的isPlanObject()函数是一个非常有用的函数,它用于判断一个对象是否是普通的JavaScript对象。在JavaScript中,对象可以有很多种形式,比如数组、函数等等。而isPlanObject()函数主要是用于判断一个对象是否是一个普通的键值对对象。
//示例1 var obj = {}; console.log($.isPlainObject(obj)); // 输出 true //示例2 var arr = []; console.log($.isPlainObject(arr)); // 输出 false //示例3 var fun = function() {}; console.log($.isPlainObject(fun)); // 输出 false
我们可以看到,示例1中的obj对象是一个普通的对象,而示例2中的数组、示例3中的函数都不是一个普通的对象。
isPlanObject()函数的内部实现主要是判断传入的对象是否有自己的构造函数(即Object.prototype.constructor),如果没有,那么就是一个普通的对象。
//isPlainObject()函数的内部实现 function isPlainObject(obj) { var class2type = {}; var toString = class2type.toString; var hasOwn = class2type.hasOwnProperty; var support = {}; var key, Ctor; if (!obj || toString.call(obj) !== "[object Object]") { return false; } Ctor = obj.constructor; return typeof Ctor === "function" && hasOwn.call(Ctor.prototype, "isPrototypeOf"); }
总之,isPlanObject()函数可以为我们判断一个对象是否是一个普通的键值对对象提供很大的方便,是我们经常使用的一个函数。