function xx() { var a = 3; setTimeout(function(){ console.log(a); delete a; // 需要手动删除吗? }, 1000);}一般有什么更好的写法??
1 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
首先 function xx() {
var a = 3;
setTimeout(function(){
console.log(a);
delete a; // 需要手动删除吗?
}, 1000);
函数xx 当执行到 setTimeout回调函数时, 这里 形成了 一个 1000ms 的闭包, 在这1000ms内 a 是不会被消除的,但setTimeout回调函数执行完毕后, 回调函数将被 回收机制 清除,这时 变量 a 不再有引用标记, a 同样在下一次的 垃圾回收中被 清除
添加回答
举报
0/150
提交
取消