2014-09-26 96 views
1
MyMapStaticObject 

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

PlaceViewModel.prototype.addMarker = function(item){ 

} 

我有一个PlaceViewModel有一个名为addMarker添加标记映射功能。我将使用PlaceViewModel不同班级中的新课程。JavaScript对象销毁的事件处理程序

var inst = new PlaceViewModel(); 

当我初始化PlaceViewModel,我加入新层经由MyMapStaticObject映射。实例销毁时我应该删除图层。

我可以处理JavaScript销毁事件吗?

+0

如果我错了,请纠正我,但只要有引用,实例就不会被销毁。所以,如果这是真的,你要求做的事情没有意义(据我所知)。 – JLRishe 2014-09-26 06:33:52

+0

所有新实例都将图层添加到地图。因此,当对象被销毁时,我将删除添加的图层地图。如果我不删除,地图图层集合将与图层一起群集。 – boliwe 2014-09-26 07:05:00

+0

我在说的是,只要你有一个引用它,这个对象就不会被销毁。因此,在对象被销毁后删除它是不可能的。或者我错过了什么? – JLRishe 2014-09-26 07:05:54

回答

1

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

如果你想实现某种清除代码,将删除图层,那么你将不得不添加一个方法,你可以调用当你完成对象,所以你可以调用该方法和它然后可以删除该方法中的图层。调用这个方法必须是你的一部分的手动操作(很可能它会被挂钩到代码中其他事物的管理中,并且可以在适当的时候通过该代码调用它)。