为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MYYA 2018-11-16 11:10:14
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 同样在下一次的 垃圾回收中被 清除

查看完整回答
反对 回复 2018-12-03
  • 1 回答
  • 0 关注
  • 939 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信