[Javascript] 클로저(Closure)
2016. 4. 12. 13:19ㆍ카테고리 없음
728x90
클로저란? 함수 내부에 만든 지역변수가 사라지지 않고 계속해서 값을 유지하고 있는 상태를 말합니다.function 외부(){var 변수;function 내부(){ 변수 사용;}}function Sum(){ var num = 0; function AddSum(){ num++; return num; } return AddSum;}var test = Sum();alert(test());alert(test());alert(test());출력123function cTest(a) { return function(b) { return a + b; }}var test = cTest(1);alert(test(2));출력3클로저의 참조를 제거하고 GC(Garbage Collection)하려면 명시적으로 test=null; 해야합니다.클로저를 사용하면 좋은 점?연관 있는 변수와 기능(중첩 함수)을 하나의 함수로 묶어 독립적으로 실행시킬 수가 있습니다.함수 내부에 데이터가 만들어지기 때문에 함수 외부에서 수정할 수 없는 보호된 데이터를 만들 수 있습니다.(객체지향 프로그래밍에서 private 데이터 라고 함.)
728x90