js的setTimeout需要手动删除外部变量吗

function xx() {

    var a = 3;

    setTimeout(function(){

        console.log(a);

        delete a; // 需要手动删除吗?

    }, 1000);

}

一般有什么更好的写法??

MYYA
浏览 940回答 1
1回答

慕标5832272

首先 function xx() {var a = 3;setTimeout(function(){    console.log(a);    delete a; // 需要手动删除吗?}, 1000);函数xx 当执行到 setTimeout回调函数时, 这里 形成了 一个 1000ms 的闭包, 在这1000ms内 a 是不会被消除的,但setTimeout回调函数执行完毕后, 回调函数将被 回收机制 清除,这时 变量 a 不再有引用标记, a 同样在下一次的 垃圾回收中被 清除
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript