![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
JAYBE |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.3.2008 Репутация: нет Всего: 0 |
Добрый день.
Собственно сабж в теме. Как сделать? есть объект <а> и <b>. Надо чтобы было а.b = <полная копия объекта <b>> |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
||||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
JAYBE, в Javascript объекты передаются по ссылкам, так что чтобы получить новый объект, нужно создать объект и скопировать туда все поля. Если поля тоже нужно копировать - поможет рекурсия, если объект отнаследован откуда-то, нужно переносить ссылку прототипа и проверять свойства с помощью hasOwnProperty и так далее... Насколько сложные объекты нужно будет копировать? Насколько полную копию нужно получать?
в простейшем варианте
Еще забавный вариант получается при использовании JSON
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
JAYBE |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.3.2008 Репутация: нет Всего: 0 |
Спасибо =)
Теперь возникла проблема, которую никак не могу решить. Подключил билиотеку jquery.json-2.3.min.js. Использую функцию <$.toJSON> и вот что получаю. >> $.toJSON(theData) "Недостаточно места в стеке" Примечательно, что если в theData менее двух дочерних обхектов, то функция работает. Стоит добавить ещё один - всё ломается. Как с этим быть? |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Объекты ссылаются друг на друга?
Добавлено через 3 минуты и 20 секунд Откуда берутся объекты? Не со странички, случайно? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
JAYBE |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.3.2008 Репутация: нет Всего: 0 |
Со сотрницы. Походу работы с ней они добавляются в объект theData;
А при окончании мне надо "оставить его", что я и делаю этой функцией.
|
|||
|
||||
JAYBE |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.3.2008 Репутация: нет Всего: 0 |
Когда так делаю: JSON.srtingyfy(theData) - тоже про стек пишет...
|
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Вот здесь в секции "An object copy function" есть один из примеров реализации (но ограничение IE >= 9).
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Aliance, я опасаюсь, что это навороченный пример точно также гикнется при циклических ссылках ;)
JAYBE, А что там вообще делается-то ? Откуда появляются данные, почему они пропадают? Зачем вообще делать копию? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
JAYBE |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.3.2008 Репутация: нет Всего: 0 |
Есть данные, которые считываются из файла - сам js объект, который подключается отдельным файлов. Вот необходимо чтобы можно было изменять этот объект и записывать в файл.
Ну я решил это. Сократил через наслдеование: сделал прототипыне функции. Теперь всё окей. Это сообщение отредактировал(а) JAYBE - 17.7.2012, 11:55 |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |