在内存方面是否有一个可以删除JS中使用的函数或变量的点



我知道,它离现实世界很远,语法变得不那么可读,但是:

> let fn = {};
> fn[0] = () => {
... console.log(`some work is done`);
... delete fn[0];
... };
[Function]
> fn[0]();
some work is done
undefined
> fn
{}

因此,它在返回后删除功能。有什么理论要做的吗?它可以释放内存还是其他东西?谢谢。

编辑:'0'可能是该函数的某个实际名称,因此fn对象可能是保留所有声明变量的地方,从而阻止它们漂浮。但是,这不是重点。

如果仅暂时需要该函数,则可以将其分配给具有let的块scope变量。

{
    let fn = () => { some code };
    do stuff here
    fn();
    do more stuff here
}

最新更新