FinalizationRegistry + WeakRef 实现对象回收回调

const fr = new FinalizationRegistry((...args) => console.log(args)); // 会在obj被回收以后输出 ['11111']
let obj ={a:123,b:3333};
// fr.register(new WeakRef(obj), "11111");
fr.register(obj, "11111"); // 直接用 obj 也可以,FinalizationRegistry不会保留对该值的强引用,因为这会违背目的;不过第二个参数会是强引用
obj = null;

参考

评论

0 / 800
全部评论()