如果我用let声明对象,是否需要删除javascript中的对象?
在javascript中,如果使用let声明对象,是否需要显式删除它 例如:如果我用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
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
声明。