Javascript 这个jQuery代码段是否会导致内存泄漏?

Javascript 这个jQuery代码段是否会导致内存泄漏?,javascript,jquery,memory-leaks,closures,Javascript,Jquery,Memory Leaks,Closures,我想知道以下jquery代码是否会导致内存泄漏: $( function() { var parent=$('table#mytable tbody').get(0); $('tr:last', parent).click(function(){...}); }); 据我所知,$('tr:last',parent)是DOM对象的最后一行,但在匿名函数中,闭包的作用域中有这个DOM对象,因此DOM和js对象之间有一个循环引用 但如果它真的有漏洞,那么我可

我想知道以下jquery代码是否会导致内存泄漏:

$( function() {                 
  var parent=$('table#mytable tbody').get(0);
  $('tr:last', parent).click(function(){...});
});
据我所知,
$('tr:last',parent)
是DOM对象的最后一行,但在匿名函数中,闭包的作用域中有这个DOM对象,因此DOM和js对象之间有一个循环引用

但如果它真的有漏洞,那么我可以在曼宁出版的畅销书《jQuery在运行》中看到很多这样的代码。这是jQuery编码中有害的“最佳实践”吗


但我不知道我的理解是否正确。我希望你的评论和更正。谢谢

此代码将导致internet explorer 6和internet explorer 7中的内存泄漏,而不是其他浏览器中的内存泄漏。请参考这些算法,IE容易泄漏。你可以在IE中测试你的代码是否有漏洞


Firefox也会泄露信息。解释了原因。Firefox也有一个问题(还没有测试过)。

之前提交的答案(3年前的,叹气)是错误的。虽然jQuery 1.0-1.2会在这里泄漏,但从问这个问题时的jQuery版本来看,添加所有事件侦听器的函数中包含了以下行:

        // Nullify elem to prevent memory leaks in IE
    elem = null;

这正是链接文档中的泄漏预防建议。

测试了Firefox泄漏检测器插件:stackoverflow显示大量泄漏!似乎我们的浏览器引擎需要在Web2.0中进行改进,为了我们的未来:-)问题是关于jQuery的,至少在2009年1月发布的jQuery版本中,这段代码不会泄漏。这个答案是错误的。请看下面我的正确答案。