簡體   English   中英

JavaScript閉包和內存管理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM