[英]JavaScript closures and memory management
我很好奇如何使用閉包內的變量來處理內存。 以此代碼為例 -
function iAmAClosure() {
var txtName = document.getElementById('name');
function validation() {
if (txtName.value.length === 0) {
return false;
}
return true;
}
document.getElementById('submit').onclick = function () {
return validation();
}
}
只要用戶點擊按鈕,就會調用我的validation
功能。
我的問題是,只要頁面處於活動狀態, txtName
變量是否保留在內存中,或者每次調用方法驗證時是否進行GC和初始化? 那還有什么呢?
明智的表現有什么好處?
只要有一種方法可以引用該函數,函數閉包中的任何變量都會保留在內存中。 這里, txtName
位於onclick
函數的閉包中,因此只要onclick
綁定完好並且“submit”按鈕存在,它就會保留在內存中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.