- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我知道 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/29333017/
我是一名优秀的程序员,十分优秀!