我们如何从全局范围内定义的DOM / BOM中删除/删除JavaScript数组?
使用其中一个临时数组我不想在使用后占用浏览器内存。
例如在my.js文件中:
var my_array = ['A','B','C','D','E','F','G'];
delete my_array; //How to?
答案 0 :(得分:2)
<强> PROLOGUE 强>
这个问题的答案主要是如何创建变量。
JS delete
只能删除对象的属性。由于您提到了浏览器,因此您使用了var
关键字,例如:
var array = ["some","thing"];
您无法删除它。 曾经。
delete array; // returns false
虽然,如果您的数组恰好是对象的属性,则可以将其删除。
<强>解决方案:强>
将此数组作为窗口对象的属性附加。
window.array = ["some","thing"];
现在,您可以轻松地在窗口或您附加阵列的其他对象上调用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
var
创建的变量是全局空间中的对象。来源: - here