JavaScript: Porównanie równości między dwoma obiektami / macierzą

Zgadnijmy dwa obiekty o tej samej właściwości:

<code>var x = {a : 'some'},
      y = {a: 'some'};
</code>

wydajność:

x == y; ix === y; oba dają fałsz

Podobnie dla dwóch tablic,

<code>var p = [1, 2, 3],
      q = [1,2,3];
</code>

p == q ip === q obaj dająfalse.

Ale jeśli wykonam następujące czynności:

<code>var x = y = {a: 'some'};
var p = q = [1, 2, 3];
</code>

Wszystkie powyższe porównania dajątrue.

Dlaczego Javascript robi takie rzeczy? Wytłumacz, proszę.

questionAnswers(3)

yourAnswerToTheQuestion