我有一些JavaScript代碼可以正常工作。但是,我覺得有點難以解釋它爲什麼會起作用。我希望有人能向我說清楚。 我有一個對象必須響應某些事件,例如點擊事件。對象的一部分是這樣的:此內部事件處理程序的JavaScript代碼說明
Maps.Marker = function (id, data, clickEvent) {
this.id = id;
this.data = data;
this.clicked = clickEvent;
};
的對象是在谷歌地圖渲染,所以點擊地圖中的對象時,我想的泡沫事件到clickEvent。部分代碼如下所示:
if (marker.clicked) { // click handler defined
google.maps.event.addListener(m, "click", function() {
marker.clicked();
});
}
請注意我在這裏省略了很多代碼,以求簡潔,並且知道它在這裏粘貼看起來不正確。重要的是在Google Map事件偵聽器中調用marker.clicked()函數。
所以,當我的標記對象實例化時,它看起來是這樣的:
var objClicked = function() {
if (this.data != null) {...}
...
}
var obj = new Maps.Marker("1", { "some object data" }, objClicked);
我不明白,完全是怎麼this.data居然在objClicked功能將工作(我可以訪問「一些?對象數據」 可有人請向我解釋
重複:http://stackoverflow.com/questions/3127429/javascript-this-keyword –
@ShadowCreeper:不是一個真正的副本,現在呢? – chrisbuchholz
@chrisbuchholz我不確定。這一個更具體。所以也許不是。 –