작성
·
303
0
답변 1
1
작성하신 코드로는 index 값(클릭 값) 을 제대로 가져올수 없습니다. console.log(pageNum) 을 찍어보시면 pageBtn.length 값이 나올 겁니다. 맨 마지막 i 값이 들어가는거죠.
CDplayer강의에서 이번에도 같은코드로 작성해보고, 말씀하신것처럼 콘솔로그를 찍어 봤는데. 이야기해주신거와 달리 현재 pageNum이 나오는거 같은데, 혹시 제가 잘못 짚고 있는게 있을까요? 아 물론 소스도 정상 작동해서 누르는 인덱스 번호로 페이지가 넘어갑니다.
++
1. 자료를 조금 더 찾아보니까 표현식과 선언식에 따른 차이일까요? 클로져 사용 유무때문에 그런걸까요?
https://joshua1988.github.io/web-development/javascript/function-expressions-vs-declarations/
2. var와 let에 따른 차이는 아니겠지요? 모든 선언을 let으로 하기는 했습니다.
위 상황은 for문에서 let을 사용해서 원하는 index를 가져올 수 있네요.
pointBtn[i].addEventListener("click", function() {
curPageNum = i;
console.log(curPageNum);
})
위처럼 사용하셔도 i값을 제대로 가져옵니다.
for문 안의 클릭이벤트는 그저 albumChangeFunc() 에서 사용할 curPageNum을 교체해주는
역할을 하는 것이기 때문에 작성해주신 대로 사용해도 전혀 문제가 없습니다.
감사합니다. 그러면 제가 작성한것처럼 작성해도, 효율성이나 코드가 뻑나고 그런 경우는 없는건가요?