Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2015, 20:06
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

Чем-то чревато, если объект имеет ссылку на себя?
Всем привет.
Интерисует вопрос. Есть несколько объектов. И у каждого и них есть свойство, которое позволяет получить доступ к остальным объектам. Кросс-ссылки, или это правильно назвать?
var objects = {};

for (var i = 0; i < 5; i++) {
 	var newObj = {
    	objects: objects
    };
    
    objects['new' + i] = newObj;
}

console.log(objects);


Меня смущает, что это работае
Вроде как получаем "рекурсию", но ничего не виснет.

Объясните, пожалуйста, почему работает, чем чревато и можно ли такое использовать?


ЗЫ

Упрощенный вариант. Вопросы - те же. Внутри объекта есть ссылки на себя же
var objects = {};
var newObj = {
    objects: objects
};

objects['new'] = newObj;
console.log(objects);
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2015, 21:31
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Ничем. Использовать можно.

console.log(window.window.window.window.window.window.window.window.window.window.window.window.window.window.window.window.window.window);
Ответить с цитированием
  #3 (permalink)  
Старый 15.10.2015, 19:47
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

При переборе объекта с ссылкой на самого себя можно уйти в бесконечную рекурсию

т.е. любые итераторы с таким объектом работать не смогут и приложение будет падать.
JSON.stringify({});
alert ("no error object");
JSON.stringify(window);
alert ("no error window");
Ответить с цитированием
  #4 (permalink)  
Старый 16.10.2015, 13:37
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

Спасибо за ответы.
Все понял
Ответить с цитированием
  #5 (permalink)  
Старый 16.10.2015, 14:07
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от MallSerg
т.е. любые итераторы с таким объектом работать не смогут
мой работает =)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывание событий в HTML5. Перекрытие элементами друг друга. iis_ (X)HTML/CSS 3 10.09.2014 21:43