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创建绑定函数(其中的值this是您的map对象):

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

但请注意,由于bind是 ES5 方法,旧浏览器不支持它。上面链接的 MDN 文章提供了一个你可能也想使用的 polyfill。

于 2012-07-03T08:50:22.030 回答