Written on
·
181
0
for( var i = 0; i < pointBtnAll.length; i++ ){
(function(idx) {
pointBtnAll[idx].onclick = function() {
// alert(idx);
pageNum = idx;
pageChangeFunc();
}
})(i); <<이부분 여기 i가 무슨 의미인가요?
}
Answer 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);
}
}