2012-02-21 71 views
4

當我嘗試調試有很多閉包的JavaScript代碼時,我用它來放置一個斷點。在javascript中調試閉包

然後我去看看堆棧,但大多數時候我只看到一個充滿匿名函數的調用堆棧,這對我來說是一場噩夢。

在javascript中調試閉包的最佳方式是什麼?

+0

它完全取決於問題是什麼......你能更具體嗎? – hvgotcodes 2012-02-21 14:54:16

回答

2

那麼,在谷歌瀏覽器,你可以看到變量內容的名稱整個封:

enter image description here

地方爲t他當前執行上下文
關閉是其封閉的執行上下文
...
達全球執行上下文

5

您可以爲回調函數添加一個名稱。這樣,函數名稱將在調試過程中顯示。

如jQuery的

$('div').each(function divLoop() { 
    .. 
}); 

在OOP的Javascript的例子,這是常見的調用函數的方法

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

而不是提供匿名函數作爲回調,嘗試聲明一個函數並使用它。

http://jsfiddle.net/v9Fas/

這樣你就可以在回調函數內部調試就像一個正常的函數調用。