2012-12-03 15 views

Antwort

49

Sie verwenden == oder ===:

var thesame = obj1===obj2; 

From the MDN :

Wenn beide Operanden-Objekte sind, dann JavaScript interne Referenzen vergleicht, die gleich sind, wenn Operanden auf das gleiche Objekt in Speicher beziehen.

13

Die Gleichheits- und Striktgleichheitsoperatoren sagen Ihnen, ob zwei Variablen auf dasselbe Objekt zeigen.

foo == bar 
foo === bar 
3

Mögliche Algorithmus:

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; 
} 
Verwandte Themen