Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   Сравнение объектов.... (http://www.flasher.ru/forum/showthread.php?t=64233)

BigAdmin 27.10.2004 11:23

Сравнение объектов....
 
почему нельзя сравнивать объекты ? Это фича такая ?

Antares 27.10.2004 13:15

Можно извратиться. Сравнить классы через instanceof, потом используя for .. in пройтись по свойствам и сравнивать со свойствами другого объекта, опять же, не забывая проверять типы.

Но проверка типизации всяческих свойств, которые тоже могут быть объектами, представляет собой гемморой, вот поэтому и нельзя, видимо.

BigAdmin 27.10.2004 16:25

да уж....
так и пришлось
для начала создать массив интересующих свойств, потом проверять
Код:

function cmpObj(objToCmp1, objToCmp2) {
  for (var i in fmtPropList) {
  if (objToCmp1[fmtPropList[i]] == objToCmp2[fmtPropList[i]]) {
    result = true;
    continue;
  } else {
    result = false;
    break;
  }
  }
  return result;
}


Antares 28.10.2004 09:50

Посмотрел ночью в книге -- можно сверять объекты. Но результат будет true только тогда, когда они указывают на один объект в памяти, то есть

Код:

var a = {prop1:13, prop2:"some prop"};
var b = a;

Вот тогда a и b будут равны.

Если же
Код:

var a = {prop1:13, prop2:"some prop"};
var b = {prop1:13, prop2:"some prop"};

то тогда переменные указывают на разные объекты в памяти и, ни смотря на равенство соответствующих свойств, они не равны.


Часовой пояс GMT +4, время: 16:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.