Javascript.RU

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

Это будет копия или реф объекта? (код внутри)
Внезапно кроме ключей-строк понадобились индексы-номера для доступа к объекту в коллекции объектов примерно такого вида.

inputs[name]={
	elem:		elem,
	error:		null,
	type:		type,
	title:		elem.title,
// тут еще много чего
};


а теперь если я вот так напишу

inputs[index]=inputs[name];

то inputs[index] будет рефом (ну или копией рефа), или в него все это целиком запишется?
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2014, 17:39
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

kostyanet,
Конечно рефом. Ты же не копируешь, а просто ссылку кидаешь.
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2014, 17:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Почему конечно? По какому признаку оно определяется? Ну то есть скажем в php я бы написал $inputs[index] =& $inputs[name] - сразу все видно. С тн live-коллекциями из DOM более-менее понятно, что браузер скопилил на то и ссылки. А что и свои объекты-массивы в js все такие же?
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2014, 18:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
По какому признаку оно определяется?
Не нужно никаких признаков. Объекты не копируются.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2014, 18:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

alert( inputs[index]===inputs[name]);

inputs[index].newProp = 1;
alert(inputs[name].newProp);
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2014, 18:03
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

kostyanet,
По очень простому
o={}

o_={
a: o,
}
o_.b=o_.a

alert(o_.a===o_.b)
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2014, 18:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Нет, я-то сделал, работает, но как-то не ясно было как, хоть похеру все равно, клиент же жырный, пусть и копируется.

Сообщение от danik.js
Объекты не копируются.
Ну да, в общем-то, то есть вы имели ввиду не клонируются автоматически. Что-то все равно копируется, иначе как добыть.
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2014, 18:21
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Сообщение от krutoy
По очень простому
Я писал про некий признак, но видимо он генеральный. Да там вообще конкретика такая что индекс только достать elem, но, поскольку имена-строки сроду не пересекутся с индексами-числами, то я подумал засунуть все в один. Засунулось
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2014, 18:24
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

kostyanet,
Да какой признак. В JS ничего под ковром не копируется. Все явно создается, а затем наполняется ссылками на уже существующее.
Ответить с цитированием
  #10 (permalink)  
Старый 14.11.2014, 18:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kostyanet
я подумал засунуть все в один. Засунулось
var element = document.createElement('div');
element.id = 'abc';


alert(element.attributes['id'].value);
alert(element.attributes[0].value);
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Internet Explorer 1 13.04.2011 21:59
Нужно ли в этом примере (это) объявление переменных или нет? sashka++ Общие вопросы Javascript 5 31.07.2010 04:47
Мини-тест ("опечатка" + стилистика кода + "известный механизм" языка) Dmitry A. Soshnikov Общие вопросы Javascript 23 13.01.2010 14:34
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00