问题是为什么调试成函数,我们怎么知道函数引用的闭包内容?
我知道Google Chrome会在“范围变量”部分显示关闭,但其他浏览器呢? (更新:FF有类似的东西,但不称之为“闭包”,但就像局部变量一样)
第一个问题的动机实际上是在阅读< Learning jQuery,3rd edition> - 附录A.
在第355页,作者说由于循环引用,以下代码片段将导致IE中的内存泄漏(单击处理程序引用具有DOM按钮的闭包内容)。
我只是想通过调试封闭内容的点击处理程序是否是这种情况。但是,Chrome chrome没有显示任何闭包变量。
因此,我想知道作者是如何知道循环引用问题的。
$(document).ready(function() {
var button = document.getElementById('button-1');
button.onclick = function() {
$.print('hello');
return false;
};
});
谢谢。
答案 0 :(得分:1)
我会建议您使用Firebug来调试代码。它是最好的插件,没有问题的确切答案,但你可能想看看这些链接。
Tools for debugging memory leaks in JavaScript
how to trace or debug javascript closures in firebug
Debugging closures in javascript
您甚至可以查看YouTube链接以获取更多信息。
希望我尝试过回答有用的东西。