我有一個函數可以創建一個測試元素。在返回函數之前,我將對測試元素的引用取消,以幫助防止內存泄漏。但是closure compiler正在刪除它認爲不需要的那條線b/c(在兩種模式中)。是否有某種comment,我可以添加以防止行被刪除?如何防止Google Closure編譯器刪除一行
function isExample (testElem) {
var bool;
testElem = testElem || document.createElement('div');
// Do stuff in here to determine `bool`
// ...
// Then nullify the reference
testElem = null; // The compiler removes this line. How do I make it keep it?
return bool;
}
內存泄漏在舊IE中是個問題。 jQuery和Modernizr都會使某些函數中的元素無效 - 這一定是有原因的。 – ryanve
請注意,它不適用於創建閉包的函數,因爲變量必須保持活動狀態,因爲閉包在原始函數返回後仍可以訪問它。這是不是在OP的情況下,雖然,所以+1 :) – Esailija
@ryanve它在舊版IE內存泄漏上刪除DOM元素的事件監聽器,而不是像這樣:-) –