2014-09-26 71 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沒有銷燬事件。這是一種垃圾收集語言,當不再有任何可以到達對象引用的代碼時將釋放一個對象。當它釋放對象時,它不會提供任何事件來通知該事件。

如果你想實現某種清除代碼,將刪除圖層,那麼你將不得不添加一個方法,你可以調用當你完成對象,所以你可以調用該方法和它然後可以刪除該方法中的圖層。調用這個方法必須是你的一部分的手動操作(很可能它會被掛鉤到代碼中其他事物的管理中,並且可以在適當的時候通過該代碼調用它)。