2013-04-05 4 views
1

Я хотел бы знать, как удалить объект изнутри, когда этот объект больше не будет использоваться.Как удалить объект изнутри?

Например:

var MyObject = function() { 
    return { 
     'some': function() {...}, 
     'actions': function() {...}, 
     'destroy': function() { 
      this = null; // throws a "ReferenceError: Invalid left-hand side in assignment" 
     }, 
    } 
} 

// Doing so, I would be able to : 
var obj = new MyObject(); 
obj.some(); 

// And when I have finished : 
obj.destroy(); 

Причина в том, что, что я не могу уничтожить его снаружи (объект создается на «щелчок» на йот элемент, но он будет уничтожен при нажатии кнопки где-то еще, так что сфера создания (в методе «OnClick») не доступна, где я хочу, чтобы удалить его.

Как я могу сделать то?

Спасибо за вашу помощь!

+1

вы можете попробовать «удалить это» –

+1

На самом деле, нет, я просто увидел дубликат моего вопроса: http://stackoverflow.com/questions/2304860/can-an-object-automatically-delete-itself-in -javascript-once-it-has-достигнуто-его (что ответит на ваш вопрос) –

ответ

1

JavaScript просто не работает. Фактически, вы не можете уничтожать объекты вообще. Единственное, что вы можете сделать, это убедиться, что у вас нет ссылок на объект, который затем сделает его пригодным для сбора мусора во время выполнения JS. Если вы публикуете более полный фрагмент, мы можем сказать вам, есть ли у вас утечка памяти или нет, но если вы сделали соответствующий .off для каждого .on и установите любые ссылочные переменные в null, то это полная степень того, что вы можете и должны делать в JavaScript.

Смежные вопросы