比较js的对象


JavaScript #对象2012-05-19 16:55

项目中常用到比较js的对象。

Object.prototype.equals = function(obj){
    if(this == obj) 
        return true;
    if(typeof(obj)=="undefined"||obj==null||typeof(obj)!="object") 
        return false;
    var length = 0; var length1=0;
    for(var ele in this) {
        length++;
    }               
    for(var ele in obj) {
        length1++;
    }               
    if(length!=length1) 
        return false;
    if(obj.constructor==this.constructor){
        for(var ele in this){
            if(typeof(this[ele])=="object") {
                if(!this[ele].equals(obj[ele]))
                    return false;
            }
            else if(typeof(this[ele])=="function"){
                if(!this[ele].toString().equals(obj[ele].toString())) 
                    return false;
            }
            else if(this[ele]!=obj[ele]) 
                return false;
        }
        return true;
    }
    return false;
};
示例:

var p1 = {name:"jack",age:18}; 
var p2 = {name:"lucy",age:10}; 
var p3 = {name:"jack",age:18}; 
 
 
console.log(p1.equals(p2));//false 
console.log(p1.equals(p3));//true 
console.log(p1.equals({name:"jack",age:18}));//true


相关文章

粤ICP备11097351号-1