Google Maps JavaScript API でどのマーカーがクリックされたかに応じて処理を変更したいのですが,マーカーを識別することができません.

ソースは以下のように書いています.locations は JSON データで,location['id'] には固有のIDと緯度経度が含まれていることは確認しました.markers はグローバル変数です.

for (var i = 0; i < locations.length; i++) {
  var location = locations[i];
  if (!markers[location['id']]) {
    var marker = new google.maps.Marker({
      position: {lat: location['lat'], lng: location['lng']},
      map: map,
      title: '"' + location['name'] + '"'
    });
    markers[location['id']] = marker;
    google.maps.event.addListener(marker, 'click', function(e) {
      console.log(location['id']);
    });
  }
}