Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   alert({ня:3} == {ня:3})//false (https://javascript.ru/forum/misc/24306-alert-%7Bnya-3%7D-%3D%3D-%7Bnya-3%7D-false.html)

Livaanderiamarum 25.12.2011 22:35

Цитата:

Сообщение от FINoM (Сообщение 145964)
Livaanderiamarum, если сильно надо сравнить два объекта, можно сделать так:
JSON.stringify(obj1) === JSON.stringify(obj2)

ха) я именно так и сделал)))!! распарсил под json и сравнил как строки))
но все ровно спасибо за совет)

а можно сделать это автоматически сделав перегрузку тех методов которые использует оператор == ???)
манкипатчинг форева)

Livaanderiamarum 25.12.2011 22:37

a = {с:3}
a.b = a

alert(  JSON.stringify(a)  )


придется проверять этот метод, если выдаст ошибку, то использовать свой, который придется писать руками)

FINoM 25.12.2011 22:49

Цитата:

Сообщение от Livaanderiamarum
придется проверять этот метод, если выдаст ошибку, то использовать свой, который придется писать руками)

Интересно, какого размера у тебя получится строка :)
Цитата:

Сообщение от Livaanderiamarum
а можно сделать это автоматически сделав перегрузку тех методов которые использует оператор

Нет.

Livaanderiamarum 25.12.2011 22:51

Цитата:

Сообщение от FINoM (Сообщение 145975)
:)Нет.

почему нет? что остановит?

Livaanderiamarum 25.12.2011 22:52

Цитата:

Сообщение от FINoM (Сообщение 145975)
Интересно, какого размера у тебя получится строка

какая строка? я свой метод буду делать не строкой. я уже писал выше как сравниваются подобные таблицы.

B@rmaley.e><e 25.12.2011 23:09

var o = {a : alert}, o2 = {a : prompt};

alert(JSON.stringify(o) == JSON.stringify(o2))

Livaanderiamarum 25.12.2011 23:15

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 145980)
var o = {a : alert}, o2 = {a : prompt};

alert(JSON.stringify(o))

native code

trikadin 25.12.2011 23:21

Livaanderiamarum, о, я только что понял... Ты зачем нового пользователя создал?) Тот как раз сегодня из бана вышел, вроде как...

melky 25.12.2011 23:22

var o = {a : alert}, o2 = {a : prompt}, o3 = { a : alert };

alert([o.toSource() == o3.toSource(), o.toSource() == o2.toSource()]);


проблема только в налиции Object.toSource

PS :
alert(   ({alert : alert}).toSource()  ) // ({alert:function alert() {[native code]}})

Livaanderiamarum 25.12.2011 23:49

Цитата:

Сообщение от trikadin (Сообщение 145983)
Livaanderiamarum, о, я только что понял... Ты зачем нового пользователя создал?) Тот как раз сегодня из бана вышел, вроде как...

не, завтра выйдет(, я соскучился по вам)


Часовой пояс GMT +3, время: 10:02.