3

正常に動作する 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();
});
}

ここでは簡潔にするために多くのコードを省略しており、ここに貼り付けると間違っているように見えることに注意してください。重要なことは、marker.clicked() 関数が Google マップ イベント リスナー内で呼び出されることです。

したがって、マーカー オブジェクトがインスタンス化されると、次のようになります。

var objClicked = function () {
if (this.data != null) {...}
...
}
var obj = new Maps.Marker("1", { "some object data" }, objClicked);

私が完全に理解していないのは、 this.data が objClicked 関数で実際にどのように機能するかです(「オブジェクトデータ」にアクセスできます。誰かが私に説明してもらえますか?

4

2 に答える 2