Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2009, 13:39
Новичок на форуме
Отправить личное сообщение для Человек Посмотреть профиль Найти все сообщения от Человек
 
Регистрация: 17.08.2009
Сообщений: 2

Хранение в объекте ссылки на другой объект
Доброго времени суток.

Что происходит в случае если я создаю свойство в объекте хранящее ссылку на другой объект? В этом свойстве будет храниться целая копия или же именно ссылка? И изменение первоначального экземпляра не приведет к изменению свойства того в котором хранится ссылка?

Приведу пример.

function Page(text, pointer) //страница кники
 {
  this.bookPointer=pointer; //указатель на книгу к которой относится страница
  this.text=text; //текст страницы
 }

function Book(name)
 {
  this.pages=new Array(); //массив оъектов "Page"
  this.name=name;
  this.addNewPage=function(text) //добавление новой страницы  
                                  {
                                    newPage=new Page(text, this); //создание новой страницы
                                     this.pages[this.pages.length]=newPage; //добавление в массив страниц
                                  }

}
newBook=new Book("JS");
newBook.addNewPage("qwerty");


Вопрос в следующем, bookPointer будет содержать ссылку наконкретный экземпляр Book или же целую копию? И изменение свойства newBook.name приведет к изменению newBook.pages[0].bookPointer.name?

Последний раз редактировалось Человек, 17.08.2009 в 13:43.
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2009, 13:41
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Что мешает проверить?

Сообщение от Человек
new Array[]
Квадратные скобки?
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2009, 13:46
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Ссылку...
При использовании new Array скобки должны быть круглые, а квадратные должны быть в коде типа
var a = [1.2, "JavaScript", true, { x:1, y:3 }];

Последний раз редактировалось JSprog, 17.08.2009 в 13:49.
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2009, 13:53
Новичок на форуме
Отправить личное сообщение для Человек Посмотреть профиль Найти все сообщения от Человек
 
Регистрация: 17.08.2009
Сообщений: 2

Сообщение от JSprog Посмотреть сообщение
Ссылку...
При использовании new Array скобки должны быть круглые, а квадратные должны быть в коде типа
var a = [1.2, "JavaScript", true, { x:1, y:3 }];
Да да, спасибо скобки случайно поставил.

За ответ спасибо, вот только подскажите, такая организация корректна(хранить в одном объекте массив других объектов, а в каждом из них ссылку на внешний объект), или же есть другой механизм?
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2009, 13:57
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Корректно можно использовать массивы, функции и другие объекты
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
правильная передача ссылки на объект в классе belbek Javascript под браузер 17 23.04.2009 23:29
Получение ссылки на объект из метода Octane Общие вопросы Javascript 7 21.08.2008 15:09