js 比较对象相等

来源:互联网 发布:平板电脑装windows系统 编辑:程序博客网 时间:2024/06/05 07:34
//比较两个对象是否相等var isObjectEquals = function(left, right){    if(left == right){        return true;     }    if(typeof(right)=="undefined"||right==null||typeof(right)!="object"){        return false;    }    var leftLen = 0;    var rightLen = 0;    for(var key in left) {        leftLen++;     }    for(var key in right) {        rightLen++;     }    if(leftLen != rightLen){        return false;     }    if(right.constructor == left.constructor){        for(var key in left){            if(typeof(left[key])=="object") {                if(!isObjectEquals(left[key], right[key])){                    return false;                }            }            else if(typeof(left[key])=="function"){                 if(!isObjectEquals(left[key].toString(), right[key].toString())){                    return false;                 }            }            else if(left[key]!=right[key]){                return false;            }        }        return true;     }    return false; };