的問題是,爲什麼調試到一個函數,我們怎麼知道,封閉的內容該功能是指什麼?如何調試JavaScript關閉?
我知道,谷歌Chrome瀏覽器將顯示在「範圍變量」部分,封閉但其他瀏覽器是什麼? (更新:FF有類似的事情,但不把它稱爲「關閉」,但就像局部變量)
動機的第一個問題實際上是沿着一邊看<學習jQuery的到來,第三版> - 附錄A.
在355頁上,作者說下面的代碼段將導致內存泄漏在IE由於環路參考(點擊處理程序指的是具有DOM按鈕的閉合含量)。
我只是好奇它是否是這種情況通過調試到單擊處理程序關閉content.However谷歌瀏覽器不顯示任何閉包變量。
因此我不知道作者是如何知道循環引用問題..
$(document).ready(function() {
var button = document.getElementById('button-1');
button.onclick = function() {
$.print('hello');
return false;
};
});
謝謝。
就筆者所知,因爲(在這種情況下),這是顯而易見的:變量「按鈕」是指一個DOM節點,它的「點擊」屬性設置爲一個函數,該函數在其範圍內的變量。 – Pointy 2012-07-07 13:39:06
等待,只有當處理程序實際引用按鈕時,這不是一個問題嗎?這是正確的例子嗎? – 2012-07-07 15:40:48
@Pointy我的觀點實際上就是'onclick'處理函數沒有引用變量'button'。因此,變量'button'如何關閉該函數?否則,我是以一種非常不正確的方式思考? – Simon 2012-07-09 05:06:31