Kakao_tunneling.js 에서 call property를 찾지못한다고 메시지가뜹니다

안녕하세요 현재 내부망으로 카카오API와 tunneling으로 통신하여 작업중인데
CustomOverlay 를 이용하여 출력하려 할 경우 아래와같은 에러가 발생되며 진행이 되지않아 문의드립니다.
Uncaught TypeError: Cannot read property ‘call’ of undefined
at r. (kakao_tunneling.js:8)
at Array.forEach ()
at o (kakao_tunneling.js:2)
at k (kakao_tunneling.js:8)
at r.c.Vh (kakao_tunneling.js:125)
at HTMLDocument.h at k (kakao_tunneling.js:6)

실행환경은 크롬브라우저이며, 요청주소는 //dapi.kakao.com/v2/,aps-tunneling/sdk.js?appkey=xxx 입니다.
call 을 못찾는것같은데 혹시 이유를 아시나요?

참고로 에러나는 정확한 위치는 kakao_tunneling.js 에
a&&a.Bf.call(a.object||this,d) ← 이부분입니다

이벤트 관련된 부분인데
혹시 특정 이벤트상에서 지도 객체들을 API를 통하지 않고 지우는 로직이 있나요?
아니면 지워진 객체의 참조를 들고 있다가 다시 사용하는 경우도 살펴보세요.
사용하시는 과정에서 그 부분이 꼬였을 수 있습니다.

로직미스였습니다.
마커 클릭할때 CustomOverlay를 생성해서 표시하는 이벤트가 문제였는데요
좀더 살펴보니 addListener로 이벤트 핸들러에 등록한 이벤트처리함수 호출부분을
addListener(marker, ‘click’, eventProc(map,marker,overlayTag)); 이런식으로 해서 함수가 그냥 호출이 되어버렸네요

eventProc는 아래처럼 되어있었는데
function eventProc(map,marker,overlayTag){
marker.getPosition();
…생략…
}

위에처럼 호출하면 이벤트핸들러의 eventProc함수가 수행될것으로 기대했으나 사실 이미
eventProc함수를 호출한 값을 이벤트 핸들러에 할당한것과 같은맥락이라 될수가 없는 부분이었네요

해결방안으로 function을 반환하도록 수정하여 해결하였습니다.
function eventProc(map,marker,overlayTag){
return function(){
marker.getPosition();
…생략…
}.
}

알아봐주셔서 감사합니다

1개의 좋아요

역시 이럴땐 클로져가 강려크하죠.
해결하셨다니 다행입니다.