JavaScript: Porównanie równości między dwoma obiektami / macierzą
Zgadnijmy dwa obiekty o tej samej właściwości:
var x = {a : 'some'},
y = {a: 'some'};
wydajność:
x == y;
ix === y;
oba dają fałsz
Podobnie dla dwóch tablic,
var p = [1, 2, 3],
q = [1,2,3];
p == q
ip === q
obaj dająfalse
.
Ale jeśli wykonam następujące czynności:
var x = y = {a: 'some'};
var p = q = [1, 2, 3];
Wszystkie powyższe porównania dajątrue
.
Dlaczego Javascript robi takie rzeczy? Wytłumacz, proszę.