4
一個匿名函數閉我有一個附加到Chrome的事件偵聽器的匿名函數,我該怎麼檢查它的關閉的價值?我怎麼能檢查在Chrome
例如:
(function(){
var i = 0;
document.body.onclick = function() {
i += 1;
};
})();
我如何找到我的當前值?
一個匿名函數閉我有一個附加到Chrome的事件偵聽器的匿名函數,我該怎麼檢查它的關閉的價值?我怎麼能檢查在Chrome
例如:
(function(){
var i = 0;
document.body.onclick = function() {
i += 1;
};
})();
我如何找到我的當前值?
不幸的是,如果你只是嘗試在Chrome的控制檯來看看它在這個例子中,你不會找到很容易地看到,你剛纔得到的函數體:
> document.body.onclick
function() {
i += 1;
}
而且看在document.body獨自給你一個DOM樹檢查器,而不是一個Javascript對象視圖。
所以做到這一點:
a = { f: document.body.onclick }
,你會得到在控制檯中的對象輸出線,有三角形,您可以打開,然後打開f
場,你會看到一個<function scope>
你可以打開,最後透露你可以打開一個Closure
。
對於不同註冊的事件監聽器或其他方式的功能可以流連(定時器等),也可以是具有挑戰性的找到那個讓你做這個函數的引用。在Chrome中,如果使用addEventListener,則可以使用名爲getEventListeners(element)的控制檯函數。
你可以試一下你的閉包裏面有一個調試器,這樣你就可以知道我在那個特定的執行點上的值 – Zagen
是的,但是運行代碼並不總是很方便,所以你可以得到一個執行堆棧跟蹤包括關閉。 –