Показать сообщение отдельно
  #6 (permalink)  
Старый 24.07.2012, 17:22
Интересующийся
Отправить личное сообщение для dump Посмотреть профиль Найти все сообщения от dump
 
Регистрация: 14.07.2011
Сообщений: 26

Т.е. получается, что оператор (foo.bar, foo.bar) образно говоря проходит по ссылке foo.bar, извлекает объект(функцию) bar и представляет её в качестве значения в отдельной области памяти? Тогда почему в таком случае следующий код:
Код:
o={x:2,y:3};
b=(false , o);
b.x=7;
alert(o.x);
выведет 7? Он же по идее должен вывести 2, потому что оператор запятая возвратит значение, что приведёт к копированию всего объекта(а не его ссылки), следовательно b в станет не ссылкой, а значением. Но этого не происходит, запятая возвращает ссылку, а не сам объект, это видно если поменять свойство x. Тогда почему же (foo.bar, foo.bar) возвращает само значение?

Цитата:
Вообще-то он выводит 22111.
У меня он выводит 22121. Почему так? Какой программой для запуска пользуетесь?
Ответить с цитированием