클로저를 활용할 경우 여러 장점이 있지만, 변수가 묶여 반복문이 비정상적으로 구동하는 경우가 있습니다. 예를 들면 아래와 같습니다. 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; ..
[자바스크립트 강좌 006] JavaScript 클로저로 메서드 연결 (closure) 클로저는 성능적인 면과 자원적인 면에서 약간 손해를 볼 수 있으므로 무차별적으로 사용해서는 안 된다. 사실 클로저를 잘 활용하려면 경험이 가장 중요하게 작용한다. 여기서는 아주 전형적인 JavaScript 클로저의 예제 코드를 소개할 텐데, 어느 정도 클로저의 감각만이라도 얻어갈 수 있기를 바란다. 진정 좋은 자바스크립트 프로그래머가 되려면 많은 개발 경험을 쌓는 것이 가장 좋은 방법이다. 특정 함수에 사용자가 정의한 자바스크립트 객체의 메서드 연결하기 123456789101112131415function HelloFunc(func) { this.greeting = "hello";} HelloFunc.prototype..