0

私の指示は次のとおりです。

map.canvas.addEventListener("mousemove", mapOnMouseMove, false);

function mapOnMouseMove (e) {
   // here : this refers to the canvas of the map object
   // i want to refer to the map (is there a way ?)
}
4

2 に答える 2

1

this次のように参照するmapようにトリックできます。

map.canvas.addEventListener("mousemove", canvasOnMouseMove, false);

function canvasOnMouseMove (e) {
   mapOnMouseMove.call(map, e);
}

function mapOnMouseMove (e) {
   // here : this refers to the map object
}
于 2012-07-03T09:03:53.023 に答える
0

bindバインドされた関数を作成するために使用できます(の値thismapオブジェクトです):

map.canvas.addEventListener("mousemove", mapOnMouseMove.bind(map), false);

ただしbind、ES5 メソッドであるため、古いブラウザーではサポートされていないことに注意してください。上記にリンクされている MDN の記事は、おそらく同様に使用したいと思うポリフィルを提供します。

于 2012-07-03T08:50:22.030 に答える