我有一个谷歌地图,在不同的事物上添加了事件监听器。例如,我有一个点对象,对于这个对象,我一直在如下添加事件:
google.maps.event.addListener(this.marker, 'click', (function(point) {
return function(event) {
alert(point.index);
}})(this));
我有很多这些事件(例如“click”,“rightclick”,“doubleclick”等)。
当我添加事件时,我会专门为当前点创建一个闭包。但是,我很想做的是:
var point = this;
google.maps.event.addListener(this.marker, 'click', function(event) {
alert(point.index);
});
我一直在回避这个问题,原因有两个。
第一个是因为我见过比我更懂Javascript的人使用“独立”的闭包,所以我想他们肯定有好的理由。
第二个原因是(我对Javascript的解释一无所知),我想知道创建一个大闭包是否会捕获所有其他我不会在事件函数中使用的变量(例如'var color')。这会导致性能问题吗?
谢谢您的帮助!