提问人:Gary 提问时间:9/12/2023 最后编辑:isherwoodGary 更新时间:9/12/2023 访问量:31
如何删除对象并捕获对象事件的删除?
How can I delete an object and capture the deletion of the object event?
问:
我正在尝试做两件事:
- 删除对象,无论是 const 还是 let - 在 Node.js 中执行此操作的正确方法
- 捕获 null 或 undefined 的删除或分配给全局范围内的 cInst 或 dInst 对象。我不想将 global 或 globalThis 对象包装在对象或闭包对象中来完成此操作。
有没有办法做到这一点?
'use strict';
function TestBase() {};
let dInst = TestBase();
delete dInst; // fails with use strict
dInst = undefined // works
const cInst = TestBase();
delete cInst; // works without use strict
'use strict';
const cInst = TestBase();
delete cInst; // fails without use strict
答:
2赞
Barmar
9/12/2023
#1
无法显式删除对象,当所有引用消失时,垃圾回收器会自动删除对象。如果对对象的唯一引用是单个变量,则只需重新分配变量即可将其删除;如果它是局部变量,则从函数返回将导致将其删除。
有关如何注册回调以在 GC 删除对象时收到通知的文档,请参阅 Finalization Registry。
评论
0赞
Gary
9/12/2023
让我试试这个
0赞
Gary
9/12/2023
我正在看这个 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... .register(target, heldValue) 是做什么用的?似乎目标必须是 object 类型并且不采用原始 VLUE
评论