出于某种原因,如果不使用.push(),我无法将任何内容分配给全局数组。

(function() {
    var globalEmail = [];

    var testClear = function() {
        var arr = [1, 2, 3];

        if (globalEmail.length > 1) {
            globalEmail = [];
        }
        else {
            globalEmail = arr;
        }
    };

    window.globalEmail = globalEmail;
    window.testClear = testClear;
})();

如果我在控制台中调用testClear()然后globalEmail,则globalEmail保持不变。

最佳答案

如注释中所述,您在这里丢失引用是因为您将globalEmail分配给了新数组,因此window.globalemail不同于新的globalemail数组。
您需要就地修改数组(例如,使用spliceconcat)。

关于javascript - 不使用.push()无法将值分配给全局数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48121693/

10-13 03:01