클로저를 활용할 경우 여러 장점이 있지만, 변수가 묶여 반복문이 비정상적으로 구동하는 경우가 있습니다. 예를 들면 아래와 같습니다. var funcs = []; for (var i = 0; i < 3; i++) { funcs[i] = function() { console.log("My value: " + i); }; } for (var j = 0; j < 3; j++) { funcs[j](); } 의도는 1, 2, 3을 순차적으로 출력하는 것입니다. 하지만, 클로저 결과 화면처럼 3이란 숫자만 3번 출력됩니다. 문제는 변수 i 가 외부 변수에 바인딩된다는 것입니다. 하지만, 여러 해결책이 있습니다. 하나씩 알아보겠습니다. ◆ 인덱스 변수를 묶는 가장 간단하고 읽기 쉬운 방법 for (var i = 0; ..
[자바스크립트 강좌 009] 즉시 실행 함수 사용 (Javascript Function) 함수를 정의함과 동시에 바로 실행하는 함수를 Javascript 즉시 실행 함수라고 한다. 이 함수도 익명 함수를 응용한 형태이다. 우선 다음 예제 코드를 살펴보자. 익명 함수를 정의함과 동시에 결과가 출력된다. 123(function (name) { console.log('This is the immediate function -> ' + name);})('foo');Colored by Color Scriptercs This is the immediate function --> foo 자바스크립트 즉시 실행 함수를 만드는 방법은 간단하다. 우선 함수 리터럴을 괄호()로 둘러싼다. 이때 함수 이름이 있든 없든 상관없..