Я создал класс для размещения компонента интерфейса на одной из моих веб-страниц. Есть кнопка add
для создания экземпляра класса и вставки нового элемента в DOM. Я хочу дать классу метод remove
для удаления элемента из dom, а затем уничтожить экземпляр.
У меня есть это:
// can have multiple tags
var Tag = new Class({
Implements: [Options, Events],
this.targetElement: undefined,
this.tagName: undefined
initialize: function() {
this.targetElement = new Element('input', { class: 'tag' });
this.targetElement.inject($('tagHolder'));
...
// event handler to set `this.tagName` to contents of the input
...
if (Tag.tags === undefined)
Tag.tags = [];
Tag.tags.push(this);
},
remove: function () {
this.targetElement.destroy();
delete this;
}
это удаляет элемент из DOM, но не удаляет объект экземпляра.
Я хочу использовать массив tag.tags
, чтобы получить доступ ко всем тегам, которые создал пользователь, поэтому, если пользователь удаляет тег, я хочу, чтобы этот тег был удален из массива или установлен на undefined
, или похожие. Так как экземпляр тега больше не нужен, имеет смысл удалить / подготовить для GC объект на этом этапе, чтобы память не была потрачена впустую.
Как мне это сделать, или это глупый метод? Есть ли лучший способ?