• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

pointALL 부분 for문 질문

21.04.14 13:34 작성 조회수 118

0

    for( var i = 0; i < pointBtnAll.length; i++ ){

        (function(idx) {

            pointBtnAll[idx].onclick = function() {

                // alert(idx);

                pageNum = idx;

                pageChangeFunc();

            }

        })(i); <<이부분 여기 i가 무슨 의미인가요? 

    }

답변 1

답변을 작성해보세요.

1

버튼의 index 값을 가져오기 위한 즉시 실행 함수입니다. 위, 아래 괄호는 정해져 있는 문법입니다. 마지막 () 괄호가 없다면 즉시 실행 함수가 아닌 것이지요. 크게보면 괄호가 두 개죠. (함수)();

즉시 실행 함수에 대한 공식적인 설명은 아래를 참고해주세요.

https://developer.mozilla.org/ko/docs/Glossary/IIFE

function 처럼 실행을 따로 시켜주지 않아도 즉시 실행되는겁니다. for문을 돌면서 원하는 넘버가 아닌 마지막 i값을 반환해줘서 저렇게 감싸서 i값을 지켜준겁니다.

다른 방법은 이런 게 있습니다.
각 버튼에 idx속성을 추가한 뒤 i 값을 넣어주고 클릭시마다 this.idx를 가져오는 방법

for (var i = 0; i < pointBtnAll.length; i++) {           
	 pointBtnAll[i].idx = i;           
	 pointBtnAll[i].onclick = function () {                
	 	 console.log(this.idx);            
	  }       
 }