Ответ 1
Это действительно зависит от того, что находится внутри этой модели. Если он привязан к событиям из других экземпляров - View/Collection/Models, вы должны удалить эти прослушиватели событий вручную, так как их невозможно удалить сразу.
Кроме того, Model.destroy() удаляет модель из любых коллекций (базовых документов):
Уничтожьте model.destroy([опции])
... Запускает событие "уничтожить" на модели, которая будет пузыриться через любые коллекции, содержащие ее...
То, что вам может понадобиться, это назначить новый метод уничтожения, который включает в себя запуск события и материал, который вы хотите удалить.
destroy: function(options) {
// Any events you wish to switch off ( if you have any )
SomeCollection.off('change', this.changeFn);
Backbone.Model.prototype.destroy.apply(this, options);
}
Возможно, вам также следует знать некоторые шаблоны для создания меньше мусора из моделей:
- Не помещайте свою инициализированную модель в переменную (сохраняйте ее в коллекции);
- Убедитесь, что вы пишете свой код таким образом, чтобы никакие события не связывались с моделью (используйте для этого виды/коллекции);
- Сохраняйте код модели простым, поскольку модели в вашем приложении будут пронумерованы.
Думаю, следуя этим правилам, вам не нужно так беспокоиться о мусоре из ваших моделей.