内存泄漏和 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; - 足以清除对元素的引用。