Удаление экземпляра
Как удалить экземпляр из функции-прототипа, если
delete this; не работает? function init () { testClassObj = new testClass(); console.log(testClassObj.testVariable1); testClassObj.clear(); console.log(testClassObj.testVariable1); } function testClass () { this.testVariable1 = 1; } testClass.prototype.clear = function () { delete this; } |
Если очень хочется то testClassObj = null;
Самоудалиться ты не сможешь, можешь разве что подчистить все свойства и методы оставив пустой объект. |
Нулл будет работать? Где-то читал что память не освобождается, где-то что освобождается, и еще слышал что это увеличивает шанс того, что сборщик мусора займется удалением.
А если не самоудаляться, а мутить отдельную функцию - это норма? |
Straj,
Объект удаляется когда на него нет ссылок. Если к объекту нельзя получить доступ - сборщик сожрет его. |
Как верно заметил tsigel, главное - не оставлять ссылок. В ручную за исключением редких конкретных случаев удалять смысла нет. Функция закончит работу и объект исчезнет.
(Правда не в приведённом вами куске кода, ибо в нём testClassObj объявлен без var т.е. в глобальной области видимости) |
Часовой пояс GMT +3, время: 21:59. |