我有一个匿名函数附加到Chrome中的事件监听器,我该如何检查其闭包的值?
例如:
(function(){
var i = 0;
document.body.onclick = function() {
i += 1;
};
})();
如何找到i的当前值?
答案 0 :(得分:4)
不幸的是,如果您只是尝试在Chrome控制台中查看此示例,您将无法轻松查看,您只需获得功能正文:
> document.body.onclick
function () {
i += 1;
}
单独查看document.body会给你一个DOM树检查器,而不是Javascript对象视图。
这样做:
a = { f: document.body.onclick }
您将在控制台中获得一个对象输出行,您可以打开一个显示三角形,然后打开f
字段,您将看到<function scope>
你可以打开,最后揭示你可以打开的Closure
。
对于不同注册的事件监听器或函数可以挂起的其他方式(定时器等),找到允许您执行此操作的函数的引用可能很有挑战性。在Chrome中,如果使用了addEventListener,则可以使用名为getEventListeners(element)的控制台函数。