2017-02-18 9 views
0
var arr = [ 
    { 
    groups: { 
     TypeID: 'AV601' 
    } 
    } 
] 

var prop = { 
    TypeID: 'AV601' 
} 

console.log(arr[0].groups); 
console.log(prop); 
console.log(arr[0].groups === prop)// false 

これはどのようにしてfalseになりますか?彼らは同じですか?等しいオブジェクトを比較すると、false、javascriptが返されます

https://jsbin.com/giholunupa/edit?js,console

+0

[なぜ等しくない二つの同一のオブジェクトである(http://stackoverflow.com/questions/11704971/why-are-two-identical-objects-not-equal-to-の可能重複お互い)。 – ryeballar

答えて

1

Javascriptがないキー平等で、参照することにより、オブジェクトを比較するためです。これら2つのオブジェクトは、等しいキー値を持つ単純に同じキー名を持ちますが、メモリ内では異なるアドレスを指しています。

let o1= {}; // points to address "#aaa" in memory 
let o2= {}; // points to address "#bbb" in memory 

o1 === o2; // false 
+0

だから私はそれぞれの小道具を比較する必要がありますか? – Per

+1

これは重複しているQ&Aを参照してください。 – trincot

+0

@PerStröm、それはあなたの仕事が何であるかによって異なります。オブジェクトに同じキーと値のペアがあるかどうかを知りたければ、キーで比較する必要があります。同じオブジェクトかどうかを知りたければ、参照によって比較する必要があります。 –

関連する問題