Сообщение от B@rmaley.e><e
|
А как бы Вы сравнивали такое?
var a = {}, b = {};
a.a = a;
b.a = b;
alert(a == b)
a и b идентичны, но разные.
Как видно, сравнение объектов перебором их структуры может быть затратным.
|
я бы сравнил названия всех ключей. если а этом этапе разницы не обнаружено то, сравнил бы значения ключей.
тут 2 этапа:
1) вначале отыскиваются и сравниваются все примитивные значения, если разница не обнаружена, то.
2) потом сравниваются все остальные ссылки. при том используется не только примитивный метод getValue() а еще и анализ на цикличность ссылок. при том если ссылка ведет на одну и ту же область в памяти то, учитывал бы это как равность. как то так.
а вы?