Javascript闭包变量保留

时间:2015-04-02 11:09:47

标签: javascript memory closures

我正面临一个奇怪的关闭案例。在下面的代码片段中,defaultConfig被维护为一个闭包变量,即使初始化测试后它没有用处。为了确保配置只包含defaultConfig成员的副本,我使用了slice来处理它的元素,但它仍然保留在内存中,可以通过在render中放置一个断点来验证。此外,如果没有触及或使用它,就无法在封闭中找到它。我找不到任何理由。我正在使用Chrome。

function test() {
    "use strict";

    var defaultConfig = ["as", "lx", "ms", "sw"];

    return view;

    function view(config) {
        if (!config) {
            config = [];

            for (var attr in defaultConfig) {
                config.push(defaultConfig[attr].slice(0,1));
            }
        }

        this.render = function() {
            console.log(config);
        }
    }
}

0 个答案:

没有答案