//常用的对象对比
this.isEqual = function () {
var arg = getArg(arguments);
var o1 = arg["object"][0] || [];
var o2 = arg["object"][1] || [];
if (!arg["object"].length) {
return (o1 == o2);
}
var isEqualForInner = function (obj1, obj2) {
var o1 = obj1 instanceof Object;
var o2 = obj2 instanceof Object;
if (!o1 || !o2) {
return obj1 === obj2;
}
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
return false;
}
for (var attr in obj1) {
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
if (t1 && t2) {
return isEqualForInner(obj1[attr], obj2[attr]);
} else if (obj1[attr] !== obj2[attr]) {
return false;
}
}
return true;
}
return isEqualForInner(o1, o2);
}
var getArg = function (arg) {
var ret = {
'number': [],
'string': [],
'boolean': [],
'object': [],
'Object': [],
'Array': [],
'function': [],
'Date': [],
'null': []
}
for (var i = 0, len = arg.length; i < len; i++) {
var ar = arg[i];
if (typeof (ar) == 'number') {
ret['number'].push(ar);
} else if (typeof (ar) == 'string') {
ret['string'].push(ar);
} else if (typeof (ar) == 'boolean') {
ret['boolean'].push(ar);
} else if (typeof (ar) == 'function') {
ret['function'].push(ar);
} else if (typeof (ar) == 'object') {
if (ar) {
if (ar.constructor == Object) {
ret['object'].push(ar);
ret['Object'].push(ar);
} else if (ar.constructor == Array) {
ret['object'].push(ar);
ret['Array'].push(ar);
} else if (ar.constructor == Date) {
ret['Date'].push(ar);
}
} else {
ret['null'].push(ar);
}
}
}
return ret;
}
想用更多的方法请打开JavaScript基础包