如何检查Chrome中的匿名函数关闭

时间:2014-05-20 22:19:53

标签: javascript google-chrome debugging closures

我有一个匿名函数附加到Chrome中的事件监听器,我该如何检查其闭包的值?

例如:

(function(){
  var i = 0;
  document.body.onclick = function() {
    i += 1;
  };
})();

如何找到i的当前值?

1 个答案:

答案 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)的控制台函数。