Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 25.12.2011, 23:51
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Livaanderiamarum
не, завтра выйдет(, я соскучился по вам)
И правда, завтра...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #32 (permalink)  
Старый 25.12.2011, 23:55
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от trikadin Посмотреть сообщение
И правда, завтра...
через 300 секунд, не)?
Ответить с цитированием
  #33 (permalink)  
Старый 26.12.2011, 00:08
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Livaanderiamarum, pазве не понятно что такое прототипы и что значения могут содержать не только строки, но и другие объекты?

var fn = function() {
    return 1;
};

var obj = {a : fn};

alert(JSON.stringify(obj));


var some = 1;

var fn = function() {
    return some;
};

var obj = {a : fn};

alert(obj.toSource());


var foo;

var some = "string1";

var bar = {
    a : some
}

var fn = function() {
	var some = "string2";

	foo = {
		a : some
	}
}();

alert([foo.a, bar.a]);

Последний раз редактировалось monolithed, 26.12.2011 в 00:12.
Ответить с цитированием
  #34 (permalink)  
Старый 26.12.2011, 00:12
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от monolithed Посмотреть сообщение
Разве не понятно что такое прототипы и что значения могут содержать не только строки, но и другие объекты?
что бы прототипы, расскажите по подробней)?
Ответить с цитированием
  #35 (permalink)  
Старый 26.12.2011, 00:16
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Livaanderiamarum
что бы прототипы, расскажите по подробней)?
RTFM.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #36 (permalink)  
Старый 26.12.2011, 00:32
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от trikadin Посмотреть сообщение
RTFM.
аа, вы про группировку общих свойств и методов в ООП чтобы не занимать память))? тогда понятно)
Ответить с цитированием
  #37 (permalink)  
Старый 26.12.2011, 01:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Livaanderiamarum
я бы сравнил названия всех ключей. если а этом этапе разницы не обнаружено то, сравнил бы значения ключей.

тут 2 этапа:
1) вначале отыскиваются и сравниваются все примитивные значения, если разница не обнаружена, то.
2) потом сравниваются все остальные ссылки. при том используется не только примитивный метод getValue() а еще и анализ на цикличность ссылок. при том если ссылка ведет на одну и ту же область в памяти то, учитывал бы это как равность. как то так.
Все-таки как ваш алгоритм от работает на примере?
var a = {};//адрес - 0x0008
var b = {};//адрес - 0x00A8
a.a = a;
b.a = b;
alert(a == b)

1)Сравниваем объекты a(0x0008) и b(0x00A8)
Названия ключей одинаковые, примитивных значений нету
2) Сравниваем между собой их единственное свойство
a.a(0x00A8) и b.a(0x0008)
Это объекты находящиеся по разным адресам(а значит предположительно разные)
НАзванияю ключей в этих объектах одинаковые. примитивных значений нету
3)Сравниваем между собой единственное свойство у объектов a.a(0x00A8) и b.a(0x0008) - a.a.a(0x0008) и b.a.a(0x00A8)
Это ссылки на объекты находящиеся по разным адресам(а значит надо продолжить сравнивать)
Ну у каждого из них обнаружено зацикливание(адрес совпадает с первоначальным для объектов)
Поэтому вглубь мы не идем
И что дальше?
равны текущие свойства или нет? Если да, то почему?
Ответить с цитированием
  #38 (permalink)  
Старый 26.12.2011, 19:35
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Gvozd Посмотреть сообщение
Все-таки как ваш алгоритм от работает на примере?
var a = {};//адрес - 0x0008
var b = {};//адрес - 0x00A8
a.a = a;
b.a = b;
alert(a == b)

равны текущие свойства или нет? Если да, то почему?
не равны потому что разная память. не продолжаем потому что обнаружено кольцо.
Ответить с цитированием
  #39 (permalink)  
Старый 27.12.2011, 08:31
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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

{nya:1} !== {nya:1}
у них разные участки памяти, и объекты всегда сравниваются по ссылке в памяти, потому и разные
"test" === "test"
у них разные участки памяти, но строка сравнивается всегда с содержимым, тоже самое и числа, потому и идентичны
Ответить с цитированием
  #40 (permalink)  
Старый 27.12.2011, 13:22
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от devote Посмотреть сообщение
что тут не ясного, нужно смотреть в первую очередь не на то что написано в листинге кода, а на более низкоуровневую часть.

{nya:1} !== {nya:1}
у них разные участки памяти, и объекты всегда сравниваются по ссылке в памяти, потому и разные
"test" === "test"
у них разные участки памяти, но строка сравнивается всегда с содержимым, тоже самое и числа, потому и идентичны
ахахххахахахб тред не читай, сразу отвечай)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск