이것은 코드가 완벽하게 정상적으로 작동하기 때문에 일종의 두려움에 대한 질문입니다. 내 심미안을 너무 미미하게 자극합니다. 내 자신의 두뇌가 지금 실패하고 있기 때문에 Stack Overflow로 향하고 있습니다.자바 스크립트 콜백 함수 및 재귀
다음은 Google지도 JS API를 사용하여 주소를 검색하고지도에 마커를 배치하는 코드 스 니펫입니다. 그러나 때로는 초기 조회가 실패하므로 다른 주소로 프로세스를 반복하고 싶습니다.
geocoder.getLatLng(item.mapstring, function(point) {
if (!point) {
geocoder.getLatLng(item.backup_mapstring, function(point) {
if (!point) return;
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
return;
}
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
은 (
getLatLng
에 두 번째 매개 변수는 콜백 함수입니다.) 당신이 센터와지도를 확대하고 마커를 추가 세 줄이 번 주 콜백, 중복 된 것을 볼 수 있습니다 물론
한 번 "폴백 콜백"(하하). 중복되지 않고 모든 것을 표현할 수있는 방법을 찾을 수 있습니까? 귀하의 솔루션이 임의의 수의 백업 맵 문자열에 대해 작동하는 경우 보너스 포인트와 나의 예상을 받게됩니다.
리터럴 이름 지정이 필요하지 않습니다. 내 솔루션에서 사용한 것을 사용할 수 있습니다 .-- arguments.callee는 함수를 참조합니다. –
리터럴 이름 지정은 솔루션보다 더 깔끔하고 덜 수줍음이긴하지만 –
함수가 arguments.callee를 통해 자신을 참조하는 것을 허용하는 대신 이름을 지정하는 것이 "방법"보다 깔끔합니까? LOL - 나는 이것이 정직하기에 다소 주관적인 것이라고 생각합니다. :) –