ArkTS是否有析构函数,查看某一个对象销毁可以在什么时间点

ArkTs有析构函数吗?查看某一个对象销毁可以在什么时间点。

HarmonyOS
2024-09-18 12:17:19
浏览
已于2024-9-18 12:17:35修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

没有类似析构函数的方法,对象销毁是虚拟机回收,由内部GC控制的。

如果要在对象销毁后执行代码可参考弱引用和垃圾回收WeakRef和FinalizationRegistry。

参考代码:

let obj: MyClass | null = new MyClass(); 
let finalizationRegistry: FinalizationRegistry<string> = new FinalizationRegistry((heldValue) => { 
  console.log('Object has been garbage collected:', heldValue); 
}); 
finalizationRegistry.register(obj, 'some value'); 
obj = null; // 移除对原始对象的强引用 
// 在垃圾回收之后,注册的回调函数将被执行 
setTimeout(() => { 
  ArkTools.forceFullGC() 
})
分享
微博
QQ
微信
回复
2024-09-18 17:19:15
相关问题
ArkTS的class函数吗?
150浏览 • 1回复 待解决
Scroll中点击某一个层图片移动到顶端
741浏览 • 1回复 待解决
如何在Native侧构建一个ArkTS对象
2028浏览 • 1回复 待解决
如何判断一个对象是否对象数组中
2258浏览 • 1回复 待解决
销毁一个子窗口的方法
311浏览 • 1回复 待解决