Нет способа явно уничтожить объект в JavaScript. Лучшее, что вы можете сделать, это удалить все ссылки на него и надеяться, что ваша реализация JavaScript повторно использует память.
В принципе, вы можете просто перезаписать любые ссылки (например, mySlider
в вашем примере) на null
. Но могут легко быть «неявные» ссылки, которыми вы не можете управлять, например, в замыканиях (используемых для событий) - вы можете помочь сборщику мусора, «очистив» любые свойства, которые ссылаются на другие объекты, до того, как выбрасывая его, но затем вы должны убедиться, что ничего плохого не произойдет, если ссылка где-нибудь выживет и что-то попытается использовать эти свойства.
Для элементов Mootools имеет метод destroy
, который проходит через целое поддерево DOM и очищает все свойства, а также соответствующее хранилище элементов, таких как прослушиватели событий, перед удалением его из DOM.
В вашем случае, как писал @Dimitar Christoff, если у вас нет внешнего кода, который вызывает методы для объекта Slider
, вам не нужно сохранять ссылку на него в var mySlider
.
И если вы этого не сделаете, единственное, что поддерживает объект Slider
, - это ссылка из стекового фрейма замыкания, построенного с помощью .bind(this)
в вызове addEvent
. Когда происходит событие и вызывается destroy
, прослушиватель событий удаляется, и механизм JavaScript также может освободить объект Slider
.