본문 바로가기

클로저2

자바스크립트 클로저 란? 클로저란 무엇인가 ? 클로저는 외부함수(포함하고 있는)의 변수에 접근할 수 있는 내부 함수를 일컫습니다. 스코프 체인(scope chain)으로 표현되기도 합니다. 클로저는 세가지 스코프 체인을 가집니다: 클로저 자신에 대한 접근(자신의 블럭내에 정의된 변수), 외부 함수의 변수에 대한 접근, 그리고 전역 변수에 대한 접근. 이렇게 3단계로 구분할 수 있습니다. 내부 함수는 외부 함수의 변수뿐만 아니라 파라미터에도 접근할 수 있습니다. 단, 내부 함수는 외부 함수의 arguments 객체를 호출할 수는 없습니다. (하지만, 외부 함수의 파라미터는 직접 호출할 수 있습니다.) 1. 클로저 예제 : function showName(firstName, lastName) { var nameIntro = "You.. 2020. 12. 23.
자바스크립트 클로저 Closure function outer () { var count = 0; // #1 var inner = function () { // #2 return ++count; }; return inner; // #3 } var increase = outer(); // #4 increase(); // === 1 #5 increase(); // === 2 * scope의 개념으로 볼 때에 #4, #5 등 outer 함수 외부에서는 outer 함수의 local 변수인 #1의 count에 접근할 방법이 없게 된다. 사용자의 접근을 제한하고, 변수의 조작을 불가능하게 하기 위해서 closure를 사용한다. 자바스크립트에서도 일반적인 객체지향에서 말하는 private 개념이 적용이 가능한 것이다. 이것이 closure의 가장 기본.. 2020. 12. 23.