我正在为jQuery插件编写一个destroy方法。我担心在调用destroy方法后持久存在的DOM对象引用导致内存泄漏的可能性。下面的代码是否有可能导致内存泄漏?
jQuery.fn.foo = function(){
var $bar = $('.bar');
$bar.on('click.foo', function(){
var $baz = $('.baz');
});
this.destroyFoo = function(){
$bar.off('click.foo');
//is this necessary to avoid an orphan node?
$bar = null;
};
return this;
};
var $qux = $('.qux').foo();
$qux.destroyFoo();
答案 0 :(得分:1)
对我来说很好看。您的变量$ bar在函数范围内声明,因此无法在其外部访问。
$ bar = null; - 足以清除对元素的引用。