Javascript: comparação de igualdade entre dois objetos / matriz

Vamos adivinhar dois objetos com a mesma propriedade:

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

saída:

x == y; ex === y; ambos dão falso

Da mesma forma para dois array,

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

p == q ep === q ambos dãofalse.

Mas para se eu fizer seguinte:

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

Todas as comparações acima dãotrue.

Por que o Javascript faz tal coisa? Explique por favor.

questionAnswers(3)

yourAnswerToTheQuestion