Javascript: сравнение равенства между двумя объектами / массивами
Давайте угадать два объекта с одинаковым свойством:
<code>var x = {a : 'some'}, y = {a: 'some'}; </code>
выход:
x == y;
а такжеx === y;
оба дают ложные
Аналогично для двух массивов,
<code>var p = [1, 2, 3], q = [1,2,3]; </code>
p == q
а такжеp === q
оба даютfalse
.
Но если я сделаю следующее:
<code>var x = y = {a: 'some'}; var p = q = [1, 2, 3]; </code>
Все приведенные выше сравнения даютtrue
.
Почему Javascript делает такую вещь? Объясните пожалуйста.