我知道,它离现实世界很远,语法变得不那么可读,但是:
> 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
}