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

김영찬님의 프로필 이미지
김영찬

작성한 질문수

인터랙티브 개발 실무 끝장내기 [역량 강화편]

스크롤 위치에 따른 페이지 변화 - scroll 이벤트

pageChangeFunc에 대해 질문있습니다.

작성

·

146

0

안녕하세요. 강사님.

늘 질 좋은 강의 잘 듣고 있습니다.

강사님이 최대한 쉽게 설명해주심에도  궁금함이 생겨 질문합니다.

왜 pageChangeFunc를 스크롤을 내릴 때 totalNum이 적용될 수 있게 하는 for문 안에 넣어주면 작동하지 않게 되는지.

왜 pageChangeFunc를 for문 밖으로 빼줘야 하는지 궁긍합니다.

답변 2

1

코딩일레븐님의 프로필 이미지
코딩일레븐
지식공유자

chair79님이 설명해주신 내용이 맞습니다 ^^

for문 안에 pageChangFunc() 를 넣어서 테스트 해보시면 동작은 합니다.

다만 굳이 그럴 필요가 없어서 밖으로 뺀겁니다.

 

@chair79

스크롤시 pageChangFunc()가 무조건 실행 되는데,

그 안에서 필요한 변수인 pageNum은

for문에 의해서 바뀌고 있으니 인자를 안 받아도 괜찮습니다.

감사합니다(__)~!!!

1

아 저는 강사는 아닌데요. 같이 듣는 수강생입장에서 말씀 드려보아요.

for문은 스크롤 할때마다 1 이렇게 도는게 아니라 순식간에 1,2,3,4를 돌아요. 그래서 for 문안에 있는 기능을 순식간에 한번씩 돌죠. 그래서 함수를 for문 안에 넣으면 스크롤의 매 순간마다 엄청난 횟수의 함수를 실행하는 셈인거죠. 굳이 연산을 노가다를 시켜서 점유율을 올릴 필요가 없으니까 for문은 검출기 역할로만 하고 결과 끝나면 break로 나가버리게 하는거구요. 그에 따라 도출된 pageNum 값 i를 가지고 함수를 실행하는걸로 파악됩니다. 제가 궁금한건 여기서 이때 실행된(for문 밖에서) 함수가 별도의 인자를 받아오지 않아도 for문에서 만들어진 값을 자동 적용해서 함수를 실행해 주고 있는게 신기합니다.

김영찬님의 프로필 이미지
김영찬

작성한 질문수

질문하기