从DOM

时间:2016-04-28 07:51:20

标签: javascript arrays dom browser

我们如何从全局范围内定义的DOM / BOM中删除/删除JavaScript数组?

使用其中一个临时数组我不想在使用后占用浏览器内存。

例如在my.js文件中:

var my_array = ['A','B','C','D','E','F','G'];
delete my_array; //How to?

1 个答案:

答案 0 :(得分:2)

<强> PROLOGUE

这个问题的答案主要是如何创建变量。

JS delete只能删除对象的属性。由于您提到了浏览器,因此您使用了var关键字,例如:

var array = ["some","thing"];

您无法删除它。 曾经。

delete array; // returns false

虽然,如果您的数组恰好是对象的属性,则可以将其删除。

<强>解决方案:

  1. 在对象中使用此数组。
  2. 将此数组作为窗口对象的属性附加。

    window.array = ["some","thing"];
    
  3. 现在,您可以轻松地在窗口或您附加阵列的其他对象上调用delete,如:

    delete window.array;
    

    delete window['array'];
    

    编辑

    由于您提到您的变量存在于全局范围内,因此它已附加到窗口对象。我们还可以使用delete吗?

    var a = 2433;
    console.log(window.a); //2433
    delete window.a; //false !
    

    另一方面,不使用var关键字:

    x = 4657;
    console.log(window.x); //4657
    delete window.x //true 
    
    1. 使用var创建的变量是全局空间中的对象。
    2. 不使用var创建的变量将成为全局对象的属性。
    3. 来源: - here