数据类型检测方法封装
在讲对象的深合并与浅合并前,我们先来封装几个数据类型检测的方法,便于后面使用。
以下所有封装的方法在 JQuery源码分析 - 数据类型检测方法封装(数字、对象、数组类数组)中已经有详细讲解。这里就不再多述。
- 通用数据类型检测toType
var class2type = {
};
var toString = class2type.toString;
var mapType = ["Boolean", "Number", "String", "Function", "Array", "Date", "RegExp", "Object", "Error", "Symbol"];
mapType.forEach(function(name){
class2type["[object "+name+"]"] = name.toLowerCase();
});
function toType(obj){
if(obj == null) {
return obj + "";
};
return typeof obj === "object" || typeof obj === "function" ?
class2type[toString.call(obj)] || "object" : typeof obj;
}
- 检测是否是纯对象isPlainObject
function isPlainObject(obj){
var proto, Ctor;
if(!obj || Object.prototype.toString.