我有一些 JavaScript 代码可以正常工作。但是,我发现很难解释为什么它确实有效。我希望,有人可以对我说清楚。我有一个必须响应某些事件的对象,例如点击事件。部分对象如下所示:
Maps.Marker = function (id, data, clickEvent) {
this.id = id;
this.data = data;
this.clicked = clickEvent;
};
该对象在 Google 地图中呈现,因此当在地图中单击该对象时,我想将事件冒泡到 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 函数中的实际工作方式(我可以访问“一些对象数据”。有人可以向我解释一下吗?