function 바깥() {
var x = 1;
function 안쪽() {
alert(x);
}
return 안쪽;
}
클로저는 함수 안에 함수를 만들고 싶을 때 찾아볼 수 있는데
바깥함수에 1. x라는 변수와 2. 안쪽함수를 만들어놨습니다.
근데 2. 안쪽함수는 x 라는 변수를 내부에서 자유롭게 사용할 수 있습니다
안쪽함수에서 바깥함수 변수들이 적혀있는 포스트잇이 자동으로 생성되어서 그런 것인데 이 포스트잇같은걸 클로저라고 합니다
일부 다른 언어는 안쪽함수에서 바깥에 있는 x라는 변수를 맘대로 못 사용합니다.
바깥함수가 실행이 끝나면 거기 있던 변수도 다 삭제되어서 그런건데 그래서 closure 기능을 직접 구현해야하는 언어들이 있습니다
자바스크립트는 함수 만들 때마다 클로저도 자동으로 만들어져서 그냥 자바스크립트 하던 사람들에겐 당연한 개념이라
굳이 몰라도 코드 잘짤 수 있습니다