内存泄漏和 jQuery 插件
Memory leaks and jQuery plugin
我正在为 jQuery 插件编写销毁方法。我担心调用 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();
我觉得不错。您的变量 $bar 在函数范围内声明,因此无法在函数范围外访问。
$bar = null; - 足以清除对元素的引用。
我正在为 jQuery 插件编写销毁方法。我担心调用 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();
我觉得不错。您的变量 $bar 在函数范围内声明,因此无法在函数范围外访问。
$bar = null; - 足以清除对元素的引用。