哈喽各位,今天咱们来聊聊JavaScript里一个听起来有点高大上,但其实挺好玩的家伙——FinalizationRegistry。这家伙能让你在对象被垃圾回收的时候,收到通知,想想是不是有点刺激? 一、 啥是FinalizationRegistry?为啥要有它? 简单来说,FinalizationRegistry是一个JavaScript内置的类,允许你注册一个回调函数,这个回调函数会在你注册的某个对象被垃圾回收器回收的时候被调用。 你可能会问,JS不是有自动垃圾回收吗?我们程序员不用管内存管理啊!为啥还要这个东西? 是这样的,自动垃圾回收是很棒,但有时候我们需要知道某个对象“死”了,以便进行一些清理工作。比如: 清理外部资源: 如果你的对象持有一些外部资源(比如文件句柄、网络连接),你可能需要在对象被回收的时候释放这些资源。虽然通常我们会在对象不再使用的时候立即释放,但万一程序员忘了呢?FinalizationRegistry就是一个兜底方案。 缓存失效: 你可能有一个缓存,其中存储了一些对象的计算结果。当对象被回收时,缓存中的相应条目就应该失效。 监控对象生命周期: 用于调试和性 …
继续阅读“JavaScript内核与高级编程之:`JavaScript` 的 `FinalizationRegistry`:其在对象被垃圾回收时的回调注册。”