Javascript 对象销毁事件处理程序

bol*_*iwe 3 javascript constructor

MyMapStaticObject

var PlaceViewModel = function(){
    MyMapStaticObject.addLayer(someLayer);
}

PlaceViewModel.prototype.addMarker = function(item){

}
Run Code Online (Sandbox Code Playgroud)

我有一个PlaceViewModel,它有一个名为addMarker 向地图添加标记的函数。我将在不同的类中使用PlaceViewModel新实例。

var inst = new PlaceViewModel();
Run Code Online (Sandbox Code Playgroud)

当我初始化 PlaceViewModel 时,我通过MyMapStaticObject添加新图层以进行映射。当实例被破坏时我应该删除层。

我可以处理 javascript destroy 事件吗?

jfr*_*d00 5

Javascript 没有 destroy 事件。它是一种垃圾收集语言,当不再有任何代码可以到达对象引用时,它将释放对象。当它释放对象时,它不会提供任何事件来通知这一点。

如果您想实现某种类型的清理代码来删除该图层,那么您将必须添加一个可以在完成该对象时调用的方法,这样您就可以调用该方法,然后它可以删除该图层该方法中的层。调用此方法必须是您的手动操作(很可能它将与代码中发生的其他事情的管理挂钩,您可以在适当的时间通过该代码调用它)。