인프런 커뮤니티 질문&답변

부드러운 족제비님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

▶ geolocation

geolocation부분에 대해 질문있습니다.

해결된 질문

24.05.28 11:56 작성

·

140

·

수정됨

0

geolocation부분에

const askForLocation = function () {
  navigator.geolocation.getCurrentPosition((position) => {
    console.log(position);
  });
};
askForLocation();

이렇게 함수가 있는데 여기서 궁금한점이 askForLocation(); 함수 호출부분에 인자로 전달하는 것이 없는데 매개변수로 position에 위치정보 객체형식으로 콘솔에 나오는 이유가 뭔지 궁금합니다.

답변 2

0

노원두님의 프로필 이미지
노원두
지식공유자

2024. 06. 03. 02:17

안녕하세요! 부드러운 족제비님!

askForLocation() 함수는 우리가 만든 함수이기 때문에, 안쪽에 있는 navigator.geolocation.getCurr.. 의 함수와는 상관이 없답니다!

 

예를들면 이런 것이죠!

const 나의함수 = function(){
  setInterval(() => {
    console.log("안녕하세요")
  }, 1000)
}
나의함수()

위 로직에서, 나의함수()를 실행시키는 것과, 함수 내부의 setInterval() 함수와는 아무런 관련이 없다는 것 아시겠죠?!

 

질문의 코드를 다시 보시면,

const 나의함수 = function () {
  navigator.geolocation.getCurrentPosition((위치) => {
    console.log(위치);
  });
};
나의함수();

마찬가지로 나의함수()를 실행시키는 것과, 함수 내부의 navigator.geolocation.getCurrentPosition() 함수와는 아무런 관련이 없답니다!^^

 

따라서, 나의함수는 무시하고 내부의 함수만 볼까요?

// 1초에 한 번씩 "안녕하세요" 라고 보여주는 함수
setInterval(() => {
  console.log("안녕하세요")
}, 1000)


// 내 위치 불러오는 함수
navigator.geolocation.getCurrentPosition((위치) => {
  console.log(위치);
});

위와 같이 정리해 볼 수 있겠죠?!

마지막으로, "위치"라고 작성된 부분은 getCurrentPosition 함수에서 보내주는 결과값 이랍니다!

"어떻게 함수의 실행 결과를 이런식으로 받아올 수 있는가?"에 대한 내용은 난이도가 있는 부분으로, 뒷부분의 callback, promise, async-await 수업에서 자세하게 다루게 됩니다!
현재 기초 과정에서는 "getCurrentPosition의 실행 결과로 위치가 저렇게 받아와지는구나!" 정도로 이해하셔도 충분합니다!^^

 

0

tutiturechanic님의 프로필 이미지

2024. 05. 28. 13:45

An unending arcade game, geometry dash requires the player to manage his character through levels.