建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

js中比较两个对象是否相等

时间:2011-03-03 09:19来源: 作者: 点击:
js中比较两个对象是否相等,给Object对象开展了一个实现而已,象java一样可以只给自己想要的类重写equals方法。 view sourceprint? 01 Object.prototype.equals = function(obj){  02     if(this == obj)   03   &n

js中比较两个对象是否相等,给Object对象开展了一个实现而已,象java一样可以只给自己想要的类重写equals方法。

view sourceprint?
01 Object.prototype.equals = function(obj){ 

02     if(this == obj)  

03         return true; 

04     if(typeof(obj)=="undefined"||obj==null||typeof(obj)!="object")  

05         return false; 

06     var length = 0; var length1=0; 

07     for(var ele in this) { 

08         length++; 

09     }                

10     for(var ele in obj) { 

11         length1++; 

12     }                

13     if(length!=length1)  

14         return false; 

15     if(obj.constructor==this.constructor){ 

16         for(var ele in this){ 

17             if(typeof(this[ele])=="object") { 

18                 if(!this[ele].equals(obj[ele])) 

19                     return false; 

20             } 

21             else if(typeof(this[ele])=="function"){ 

22                 if(!this[ele].toString().equals(obj[ele].toString()))  

23                     return false; 

24             } 

25             else if(this[ele]!=obj[ele])  

26                 return false; 

27         } 

28         return true; 

29     } 

30     return false; 

31 };
示例如下:

view sourceprint?
1 var p1 = {name:"jack",age:18};  

2 var p2 = {name:"lucy",age:10};  

3 var p3 = {name:"jack",age:18};  

4   

5   

6 console.log(p1.equals(p2));//false  

7 console.log(p1.equals(p3));//true  

8 console.log(p1.equals({name:"jack",age:18}));//true

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片