나는 Google지도가 있고, 나는 다른 것들에 이벤트 리스너를 추가하고있다. 예를 들어, 나는 Point 객체를 가지고 있고,이 목적을 위해, 나뿐만 따라서 이벤트가 추가되었습니다작은 폐쇄 대 한 큰 하나의
google.maps.event.addListener(this.marker, 'click', (function(point) {
return function(event) {
alert(point.index);
}})(this));
나는이 사건의 많은 ('더블 클릭'을 '오른쪽 클릭하면'을 '클릭'에 대한 하나가 , 등).
이벤트를 추가 할 때 현재 지점 주위에만 클로저를 만듭니다. 그러나 내가하는 유혹은 단지 :
var point = this;
google.maps.event.addListener(this.marker, 'click', function(event) {
alert(point.index);
});
나는 두 가지 이유 때문에 이것을 피하고있다.
하나는 "개별"클로저를 사용하는 것보다 Javascript에 대해 더 많이 알고있는 사람들을 보았 기 때문에 좋은 이유가 있어야한다고 생각합니다.
두 번째 이유는 (그리고 나는 자바 스크립트가 어떻게 해석되는지 알지 못한다.) 큰 클로저를 만들면 내 이벤트 함수 (예 : 'var 색깔'). 이로 인해 성능 문제가 발생할 수 있습니까?
도움 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 그러나 두 번째 코드에서 "var lotsofmemory = new Array (10000);" 앞에 "var point = this"가 있습니다. "lotsofmemory"가 더 이상 필요하지 않을 때, 그것은 익명의 함수로 닫히기 때문에 공간을 낭비 할 것인가? (Chrome과 같은 브라우저는 경험적으로 IE와 같은 종류의 것을 최적화 할 수 있습니다.) – Nick
반복적으로 수행하는 스크립트를 작성하면 anon을 저장합니다. 기능을 목록에 있다면 효과가있을 경우 효과를 측정 할 수 있어야합니다. –