2012-12-03 33 views

Trả lời

49

Bạn sử dụng == hoặc ===:

var thesame = obj1===obj2; 

From the MDN :

Nếu cả hai toán hạng là các đối tượng, sau đó so sánh Javascript tài liệu tham khảo nội bộ mà đều bình đẳng khi toán hạng tham khảo cùng một đối tượng trong bộ nhớ .

13

Nhà điều hành bình đẳng và bình đẳng nghiêm ngặt sẽ cho bạn biết nếu hai biến trỏ đến cùng một đối tượng.

foo == bar 
foo === bar 
3

thể thuật toán:

Object.prototype.equals = function(x) 
{ 
    var p; 
    for(p in this) { 
     if(typeof(x[p])=='undefined') {return false;} 
    } 

    for(p in this) { 
     if (this[p]) { 
      switch(typeof(this[p])) { 
       case 'object': 
        if (!this[p].equals(x[p])) { return false; } break; 
       case 'function': 
        if (typeof(x[p])=='undefined' || 
         (p != 'equals' && this[p].toString() != x[p].toString())) 
         return false; 
        break; 
       default: 
        if (this[p] != x[p]) { return false; } 
      } 
     } else { 
      if (x[p]) 
       return false; 
     } 
    } 

    for(p in x) { 
     if(typeof(this[p])=='undefined') {return false;} 
    } 

    return true; 
} 
Các vấn đề liên quan