Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我用let声明对象,是否需要删除javascript中的对象?_Javascript_Ecmascript 6 - Fatal编程技术网

如果我用let声明对象,是否需要删除javascript中的对象?

如果我用let声明对象,是否需要删除javascript中的对象?,javascript,ecmascript-6,Javascript,Ecmascript 6,在javascript中,如果使用let声明对象,是否需要显式删除它 例如: downloadHelper(url) { let pom = document.createElement('a'); pom.setAttribute('href', url); pom.setAttribute('download', ''); pom.style.display = 'none'; document.body.appendChild(pom); p

在javascript中,如果使用let声明对象,是否需要显式删除它

例如:

downloadHelper(url) {
    let pom = document.createElement('a');
    pom.setAttribute('href', url);
    pom.setAttribute('download', '');
    pom.style.display = 'none';
    document.body.appendChild(pom);
    pom.click();
    document.body.removeChild(pom);
    delete pom;
},

不,你不知道JavaScript是垃圾收集的。“删除”仅删除引用而不是实际对象。下面解释了您所需要的一切

有趣的帖子:
stackoverflow文章可能有用。简而言之,答案是否定的。由于变量的作用域仍然是某个对象,因此当该对象被删除时,该变量应该被垃圾收集,通常也比
var
更早。

不,您不需要。此外,
delete
删除对象属性而不是变量。用
let
声明。