的问题是,为什么调试到一个函数,我们怎么知道,封闭的内容该功能是指什么?如何调试JavaScript关闭?
我知道,谷歌Chrome浏览器将显示在“范围变量”部分,封闭但其他浏览器是什么? (更新:FF有类似的事情,但不把它称为“关闭”,但就像局部变量)
动机的第一个问题实际上是沿着一边看<学习jQuery的到来,第三版> - 附录A.
在355页上,作者说下面的代码段将导致内存泄漏在IE由于环路参考(点击处理程序指的是具有DOM按钮的闭合含量)。
我只是好奇它是否是这种情况通过调试到单击处理程序关闭content.However谷歌浏览器不显示任何闭包变量。
因此我不知道作者是如何知道循环引用问题..
$(document).ready(function() {
var button = document.getElementById('button-1');
button.onclick = function() {
$.print('hello');
return false;
};
});
谢谢。
就笔者所知,因为(在这种情况下),这是显而易见的:变量“按钮”是指一个DOM节点,它的“点击”属性设置为一个函数,该函数在其范围内的变量。 – Pointy 2012-07-07 13:39:06
等待,只有当处理程序实际引用按钮时,这不是一个问题吗?这是正确的例子吗? – 2012-07-07 15:40:48
@Pointy我的观点实际上就是'onclick'处理函数没有引用变量'button'。因此,变量'button'如何关闭该函数?否则,我是以一种非常不正确的方式思考? – Simon 2012-07-09 05:06:31