• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

이번 강의에 대한 여러 질문이 있습니다.

20.09.23 18:24 작성 조회수 59

1

안녕하세요! 동훈님. 좋은 강의 감사드립니다.
4가지 질문이 있습니다;; 

1. naver.maps가 정의된 바로는 'naver지도의 모든 객체를 담는 네임스페이스' 라고 명시되어있는데 이 말이 객체안에 객체가 들어있는 구조를 말하는 건가요? 

2. 그리고 addListener라는 메소드는 addEventListener와 비슷하게 event를 부여해주는 역할을 하는 것 같은데 addEventListener 대신 addListener를 쓰신 이유가 궁금합니다. 앞에 naver.maps.Event라는 특별한 객체(?)에만 쓸수 있는 것인가요?

3.또 이와 관련해서 for문을 사용하셨는데 for문의 역할이 프로그램 동작하고나서 한 번 돌때 marker에 click 이벤트 속성을 부여하는 역할인 것 같은데 여러 마커들에게  이벤트를 부여해주는 코드를 간략하게 하기 위해서 for문을 사용하셨나요??

4. getClickHandler()에서 return funcetion()을 하지 않고 if문을 쓰면 작동이 안되는 이유는 무엇인가요?? addListener로 getClickHandler를 실행시키는 거기때문에 그냥 getClickHandler에서 if문을 짜도 작동이 되야 하는 것 아닌가요???

제가 개발자가 되는 것이 목표인데 이런 사소한 하나하나가 너무 궁금하네요. 혼자 고민해봐도 왜 그런지 명확하게 결론이 나오지 않아 질문드렸어요. 그래도 너무 질문이 많았습니다.. 죄송합니다!

답변 1

답변을 작성해보세요.

0

로또님 질문주셔서 감사드립니다~!!

1. 넵넵 어느정도 맞는 말입니다. naver라는 객체를 받아왔고 maps라는 것을 또 받아왔습니다. naver라는 객체 안의 구조를 정확히 모르지만 관련한 내용을 확인해 보았을 대 객체안에 객체가 들어있다고 유추할 수 있습니다.

2. addEventLister를 통해 js에서도 이벤트를 줄 수 있는 것처럼 지도 위에 marker에도 이벤트를 주기 위해 addLister라는 메소드를 적용했습니다. 아무래도 지도위에 특수한 경우이기 때문에 naver.maps.Event에서 제공하는 특별한 메소드를 사용했고, 이는 다른 곳에서는 쓸 수 없습니다.

3. 네 맞습니다. 코로나맵 기준 marker의 경우에는 총 1500개의 마커가 있기 때문에 이를 자동화하기 위해 for문을 사용했습니다.

4. if문을 그대로쓰면 addListener가 호출되는 시점에서 getClickHandler가 호출되기때문에 사용하지 않습니다. 실제로 return function을 지운채로 실행해보면 마지막 infowindow만 호출되는 것을 확인할 수 있습니다. 저희는 마커를 클릭 시 infowindow가 실행되는 것을 목적으로 하고 있기 때문에 return function을 통해 클릭되는 시점에서 함수를 호출하도록 만들었습니다.

충분한 답변이 되었으면 좋겠습니다~!! 만약 이해가 안되는 부분이 있다면 언제든 질문 주시기 바랍니다. 감사합니다!!