gpt4 book ai didi

javascript - ECMAScript 6 类析构函数

转载 作者:行者123 更新时间:2023-11-28 06:47:32 24 4
gpt4 key购买 nike

我知道 ECMAScript 6 有构造函数,但是 ECMAScript 6 是否有析构函数之类的东西?

例如,如果我在构造函数中将对象的某些方法注册为事件监听器,我想在删除对象时将其删除。

一种解决方案是约定为每个需要这种行为的类创建一个析构函数方法并手动调用它。这将删除对事件处理程序的引用,因此我的对象将真正准备好进行垃圾回收。否则它会因为这些方法而保留在内存中。

但我希望 ECMAScript 6 是否有一些原生的东西,可以在对象被垃圾收集之前调用。

如果没有这样的机制,那么解决此类问题的模式/约定是什么?

最佳答案

Is there such a thing as destructors for ECMAScript 6?

没有。 EcmaScript 6 根本没有指定任何垃圾收集语义[1],因此也不存在“销毁”之类的东西。

If I register some of my object's methods as event listeners in the constructor, I want to remove them when my object is deleted

析构函数在这里甚至无法帮助你。事件监听器本身仍然引用您的对象,因此在取消注册之前它无法被垃圾收集。
您实际上正在寻找的是一种注册监听器而不将它们标记为事件根对象的方法。 (请向您本地的事件源制造商询问此类功能)。

1): 嗯,有一个以 WeakMap 的规范开始的。和 WeakSet对象。然而,真正的弱引用仍在酝酿之中[1] [2] .

关于javascript - ECMAScript 6 类析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com