2019. 7. 17. 10:42ㆍJavas/DESC
클로저는 함수와 함수가 선언된 어휘적 환경의 조합입니다.
"클로저는 독립적인 (자유)변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 '기억한다.'"
클로저는 함수와 그 함수가 선언된 렉시컬 환경의 조합입니다. "렉시컬"은 렉시컬 범위 지정이 변수가 사용 가능한 위치를 결정하기 위해 소스 코드 내에서 변수가 선언된 위치를 사용한다는 사실을 나타냅니다. 클로저는 외부 함수가 반환된 후에도 외부 함수의 변수 범위 체인에 접근할 수 있는 함수입니다.
클로저(closure)
- 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다.
- 자바스크립트를 이용한 고난이도의 테크닉을 구사하는데 필수적인 개념으로 활용된다.
- 내부함수는 외부함수의 지역변수에 접근할 수 있다.
- 내부함수와 밀접한 관계를 가지고 있는 주제다. 내부함수는 외부함수의 지역변수에 접근할 수 있는데 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근할 수 있다.
- 내부함수가 외부함수의 지역변수에 접근 할 수 있고, 외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않는 특성을 의미한다.
- 동일한 외부함수 안에서 만들어진 내부함수나 메소드는 외부함수의 지역변수를 공유한다.
- 외부함수가 실행될 때마다 새로운 지역변수를 포함하는 클로저가 생성된다.
- Javascript는 기본적으로 Private한 속성을 지원하지 않는데, 클로저의 이러한 특성을 이용해서 Private한 속성을 사용할 수 있게된다.
*** Private 속성은 객체의 외부에서는 접근 할 수 없는 외부에 감취진 속성이나 메소드를 의미한다. 이를 통해서 객체의 내부에서만 사용해야 하는 값이 노출됨으로서 생길 수 있는 오류를 줄일 수 있다. ***
https://opentutorials.org/course/743/6544
클로저 - 생활코딩
클로저 클로저(closure)는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. 클로저는 자바스크립트를 이용한 고난이도의 테크닉을 구사하는데 필수적인 개념으로 활용된다. 내부함수 자바스크립트는 함수 안에서 또 다른 함수를 선언할 수 있다. 아래의 예제를 보자. 결과는 경고창에 coding everybody가 출력될 것이다. function outter(){ function inner(){ var title = 'coding
opentutorials.org
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures
클로저
클로저는 함수와 함수가 선언된 어휘적 환경의 조합이다. 클로저를 이해하기 위해서는 자바스크립트가 어떻게 변수의 유효범위를 지정하는지(Lexical scoping)를 먼저 이해해야 한다.
developer.mozilla.org
'Javas > DESC' 카테고리의 다른 글
| 연산자 & 제어문 & 타입변환과 단축평가 (0) | 2020.03.19 |
|---|---|
| 기본 문법 & 데이터 타입과 변수 (0) | 2020.03.17 |
| var, let, const (0) | 2019.08.12 |
| 함수만들기, 함수기본과 매개변수 (0) | 2019.08.09 |