我有一些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我不确定。这一个更具体。所以也许不是。 –