isArray与isFunction方法的内部实现方式很简单,调用了toString.call(),然后判断其结果的字符串
isEmptyObject方法则是使用了一个for in循环,只要取得一个元素,就return false
isPlainObject,首先,如果是false,或本身不是一个object,或者是一个DOM或Window,直接返回false;其次判断对象的引用,constructor是对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数,判断obj是否具有isPrototypeOf属性,isPrototypeOf是挂在Object.prototype上的。通过字面量或自定义类(构造器)创建的对象都会继承该属性方法。最后,如果是一个空对象,或者对象内全是属性(仅检查最后一个是否为属性),就返回true。
本文介绍了JavaScript中几种类型的检测方法,包括isArray与isFunction的简单实现,通过调用toString.call()来判断对象类型;isEmptyObject方法用于检测对象是否为空;isPlainObject方法则更深入地检查对象的构造器和属性,确保其为普通的JavaScript对象。
1008

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



