在javascript中调试闭包

在javascript中调试闭包,javascript,debugging,closures,Javascript,Debugging,Closures,当我试着调试包含很多闭包的javascript代码时,我用它来设置断点 然后我去看看堆栈,但大多数时候我只是看到一个充满匿名函数的调用堆栈,这对我来说是一场噩梦 在javascript中调试闭包的最佳方法是什么?您可以向回调函数添加一个名称。这样,函数名将在调试期间显示 以jQuery为例 $('div').each( function divLoop() { .. }); 在OOP Javascript中,调用函数作为方法名是很常见的 MyClass.prototype.methodNa

当我试着调试包含很多闭包的javascript代码时,我用它来设置断点

然后我去看看堆栈,但大多数时候我只是看到一个充满匿名函数的调用堆栈,这对我来说是一场噩梦


在javascript中调试闭包的最佳方法是什么?

您可以向回调函数添加一个名称。这样,函数名将在调试期间显示

以jQuery为例

$('div').each( function divLoop() {
  ..
});
在OOP Javascript中,调用函数作为方法名是很常见的

MyClass.prototype.methodName = function methodName() { ... }

在Google Chrome中,您可以在闭包中看到变量内容:

本地是当前执行上下文
闭包是其封闭的执行上下文


在全局执行上下文之前,请尝试声明一个函数并使用它,而不是提供匿名函数作为回调


这样,您就可以像普通函数调用一样在回调函数内部进行调试。

这完全取决于问题是什么……您能更具体一点吗?