-
카테고리
-
해결 여부
미해결
로또 당첨기 콜백함수 관련 질문
19.07.16 01:53 작성 조회수 113
0
for (var i = 0; i < 당첨숫자들.length; i++) {
|
||||||||||||
} |
setTimeout( 공색칠하기(당첨숫자들[j], 결과창), ( j + 1) * 1000); << 이렇게 하면 왜 안 되는 건가요?
setTimeout 함수 안에 또 익명 함수를 선언하여 콜백함수를 만들어야 되는 이유가 궁금해요.
클로저 문제때문에 function 클로저를 선언하여 함수로 감싸는 건 이해가 되는데 setTimeout 안에 콜백함수를
또 함수로 감싸야 하는 이유가 궁금합니다. 이 부분이 이해가 안돼서 아무리 온라인에서 찾아봐도 이해가 안 되더라구요 ㅠㅠ
지뢰찾기 강의도 듣고 클로저 강의도 들었는데 잘 이해가 안 돼서요 ㅠㅠ
답변해주시면 감사하겠습니다.
답변을 작성해보세요.
1
조현영
지식공유자2019.07.16
공색칠하기(당첨숫자들[j], 결과창) 이렇게 하는 순간, 함수 호출이기 때문 바로 실행되어 버립니다(setTimeout보다도 전에). 그래서 실행되지 않은 함수로 감싸주는 것입니다. 그 함수가 호출되면서 내부의 공색칠하기(당첨숫자들[j], 결과창)도 실행되게끔요.
a(b())와
a(function b() {})는 완전 다른 겁니다.
0
YJ Ginter
질문자2019.07.16
답변 너무 감사합니다! 강의 잘 듣고 있어요! 그냥 문법만 따라하는 강의가 아니라 프로그래밍적 사고도 해 줄수 있게 해줘서 강의가 맘에 들어요 ^^
답변 2