Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2014, 01:58
Аспирант
Отправить личное сообщение для 1lider Посмотреть профиль Найти все сообщения от 1lider
 
Регистрация: 12.04.2013
Сообщений: 86

Полностью удалить объект
Доброй ночи.

У нас имеется объект. Пример:

var new_obj = {'name':'peter', 'lastname':'petrelli'};

// удаляю его элементы
for(var key in new_obj) {
      delete new_obj[key];
}

// проверяю объект
alert(new_obj); // всплывает - [object Object]


Это значит, что наш объект ещё остался. Как же удалить созданный объект полностью? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2014, 03:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Объект жив пока жива хотя бы одна ссылка на него. В остальном о нём позаботится Garbage Collector.

Т.е. если очень надо, то можно сделать так:
new_obj = null;
но локальные переменные сами исчезнут с завершением работы функции.(если конечно их не замкнуть)
__________________
29375, 35

Последний раз редактировалось Aetae, 09.07.2014 в 03:51.
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2014, 05:10
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

не используй var при определениии объекта, тогда можешь сделать delete new_obj
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2014, 05:12
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Aetae,
В его случае ссылка на объект никогда не сдохнет
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2014, 05:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Сообщение от foo Посмотреть сообщение
не используй var при определениии объекта, тогда можешь сделать delete new_obj
Используй var всегда, и никогда не слушай foo.

Сообщение от foo Посмотреть сообщение
В его случае ссылка на объект никогда не сдохнет
Очевидно что пример вырван из контекста. Если же нет, и он работает в глобале - то оставшаяся ссылка на объект самая последняя из проблем на которые стоит обращать внимание.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2014, 16:56
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

<script>
var new_obj = {'name':'peter', 'lastname':'petrelli'};
window.new_obj2 = new_obj = {'name':'peter', 'lastname':'petrelli'};

function d_delete (){
   alert ("delete");
    delete new_obj;
    delete new_obj2;
};

function c_chek(){
    alert(typeof new_obj);
    alert(typeof new_obj2);
};



</script>
<input type="button" onclick="d_delete()" value="delete">
<input type="button" onclick="c_chek()" value="chek">

Последний раз редактировалось MallSerg, 09.07.2014 в 17:07.
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2014, 19:33
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

К чему эти танцы? Присвоить null достаточно же.
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2014, 20:07
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Erolast,
Присвоив null Вы не удалите объект. Вы не читаете вопросы.
Ответить с цитированием
  #9 (permalink)  
Старый 07.06.2018, 18:20
Новичок на форуме
Отправить личное сообщение для Hovhannes99 Посмотреть профиль Найти все сообщения от Hovhannes99
 
Регистрация: 07.06.2018
Сообщений: 1

Надо создать переменную, обявленную неявно (без вар или лэт), тогда можно спокойно удалить эту переменную с объектом через делет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить объект new Vladjiss Общие вопросы Javascript 1 06.11.2013 19:22
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
удалить родительский объект изнутри через onClick Brook Events/DOM/Window 5 12.08.2012 17:24
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Можно ли удалить клонированный объект Евгений_86 jQuery 6 13.04.2011 12:54