Javascript.RU

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

Массив как ссылочный тип
Доброго времени суток!
Столкнулся с один интересным моментом, при отладке скрипта. В общем-то я причину понял, но хотелось бы познакомиться с ней по-лучше т.к. в голове это пока не укладывается. Весь код приводить не стану, а только,так сказать самое вкусное. Прошу прощения, если где-то что-то напутал/забыл.
//Определяем в прототипе метод:
var list = this.renderOrder; //Синоним, для сокращенного обращения
/*некоторое кол-во кода*/
var head = list.splice(0,itemIndex)
head.push(userID);
list = head.concat(list); //В этом месте, list перестает указывать на this.renderOrder

Проблема всплыла из-за моего незнания спецификации и невнимательного чтения книг) Но все равно интересно, почему в последней строчке меняется не массив this.renderOrder, а начинает указывать на новый созданный массив? Если можно - будет даже здорово увидеть в спецификации этот момент. Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 20.12.2013, 11:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Gerald,
строка 2 -- в list хранилась ссылка на обьект renderOrder
строка 6 -- в list записали ссылку на другой обьект
Ответить с цитированием
  #3 (permalink)  
Старый 20.12.2013, 12:07
Новичок на форуме
Отправить личное сообщение для Gerald Посмотреть профиль Найти все сообщения от Gerald
 
Регистрация: 20.12.2013
Сообщений: 3

рони,
Это ясно. Вопрос другой - почему именно записывается ссылка? Со 2й строкой ясно - там объявление. А потом - почему нельзя по ссылке перезаписать объект? Вот мне допустим требуется целиком изменить массив.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать массив Faab jQuery 5 19.07.2012 15:36
Как записать в массив новый объек а не ссылку на исходный объект Casufi Общие вопросы Javascript 12 08.02.2010 02:40
Как удалить массив? SunYang Общие вопросы Javascript 14 05.02.2010 14:31
Как создать ассоциативный массив JS + CSS occlusion Общие вопросы Javascript 3 12.01.2009 09:19
как узнать тип значения объекта? VHS Общие вопросы Javascript 1 07.01.2009 23:57