如何调试JavaScript闭包?

时间:2012-07-07 13:06:40

标签: javascript jquery closures

  1. 问题是为什么调试成函数,我们怎么知道函数引用的闭包内容?

    我知道Google Chrome会在“范围变量”部分显示关闭,但其他浏览器呢? (更新:FF有类似的东西,但不称之为“闭包”,但就像局部变量一样)

  2. 第一个问题的动机实际上是在阅读< Learning jQuery,3rd edition> - 附录A.

    在第355页,作者说由于循环引用,以下代码片段将导致IE中的内存泄漏(单击处理程序引用具有DOM按钮的闭包内容)。

    我只是想通过调试封闭内容的点击处理程序是否是这种情况。但是,Chrome chrome没有显示任何闭包变量。

    因此,我想知道作者是如何知道循环引用问题的。


  3. $(document).ready(function() {
      var button = document.getElementById('button-1');
      button.onclick = function() {
        $.print('hello');
        return false;
      };
    });
    

    谢谢。

1 个答案:

答案 0 :(得分:1)

我会建议您使用Firebug来调试代码。它是最好的插件,没有问题的确切答案,但你可能想看看这些链接。

Tools for debugging memory leaks in JavaScript

how to trace or debug javascript closures in firebug

Debugging closures in javascript

您甚至可以查看YouTube链接以获取更多信息。

希望我尝试过回答有用的东西。