![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Michael.de |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 2 Всего: 9 |
Всем привет
![]() Написал код для пояснения моего вопроса:
removeChild() удаляет объект из DOM-дерева, но не стирает его. delete стирает не все. В моей книжке об этом говорится следующее (перев. с нем.):
![]() |
||||
|
|||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
'delete' удаляет свойство, если у этого свойства нет атрибута 'DontDelete', в вашем случае такой атрибут есть, т.к. 'object' - переменная при-var-енная к глобальному объекту. Сборщик в идеале сам удалит, наша задача - не удерживать в свойствах те значения, что нам больше не нужны (отсюда кратковременные значения должны жить в функциях плюс ненужные свойства можно удалять плюс ненужные значения можно переопределять). В реальной жизни на любом движке сборщик может тупить, многие leaks известны , алгоритм работы стараются улучшить... Правильная мысль, даём новое значение, старое забыто (если не зацепилось за память в другом месте)... |
|||
|
||||
Michael.de |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 2 Всего: 9 |
Zeroglif, спасибо за ответ
![]()
А как (например в моём случае) избавляться от глобальной переменной? И есть ли какие-либо стандартные "уловки"? P.S. В принципе ответ на вопрос дан, но тему закрою попозже, т.к. хотелось бы получить ответ на доп. вопрос ![]() |
|||
|
||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
||||
|
||||
Michael.de |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 2 Всего: 9 |
Zeroglif, я не точно выразился - имелось в виду не значение переменной (с этим мы уже разобрались), а отказ от использования глобальной переменной (замена её чем-либо другим)
![]() |
|||
|
||||
IDVsbruck |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 8 Всего: 22 |
А зачем?
Или назначь другое значение - переменные в js нетипизированы, или присвой null - она ничего весить не будет. Гарбедж Коллектор ее не удалит, так как она находится в scope объекта window. Можно вовсе отказаться от глобальных переменных, используя обертки-замыкания, но это не очень удобно да и зачем? |
|||
|
||||
Michael.de |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 2 Всего: 9 |
![]() ![]() ![]() P.S. Собственно говоря это уже другой вопрос (я мог бы другой топик создать), но у меня они оба в одном и том же скрипте возникли... P.P.S. Никто не ответил... этот вопрос снимаю, тема помечена как "решённая" ![]() Это сообщение отредактировал(а) Michael.de - 11.11.2008, 22:59 |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |