js对象比较

 1 Object.prototype.equals = function(obj) {
 2         if (this == obj)
 3             return true;
 4         if (typeof(obj) == "undefined" || obj == null || typeof(obj) != "object")
 5             return false;
 6         var length = 0;
 7         var length1 = 0;
 8         for (var ele in this) {
 9             length++;
10         }
11         for (var ele in obj) {
12             length1++;
13         }
14         if (length != length1)
15             return false;
16         if (obj.constructor == this.constructor) {
17             for (var ele in this) {
18                 if (typeof(this[ele]) == "object") {
19                     if (!this[ele].equals(obj[ele]))
20                         return false;
21                 } else if (typeof(this[ele]) == "function") {
22                     if (!this[ele].toString().equals(obj[ele].toString()))
23                         return false;
24                 } else if (this[ele] != obj[ele])
25                     return false;
26             }
27             return true;
28         }
29         return false;
30     };
31     var p1 = {
32         name: "jack",
33         age: 18
34     };
35     var p2 = {
36         name: "lucy",
37         age: 10
38     };
39     var p3 = {
40         name: "jack",
41         age: 18
42     };
43     console.log(p1.equals(p2)); //false 
44     console.log(p1.equals(p3)); //true 
45     console.log(p1.equals({
46         name: "jack",
47         age: 18
48     })); //true

 

转载于:https://www.cnblogs.com/yygZfx/p/3623380.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值