Script

Closure 본문

Javascript

Closure

scripter. 2022. 12. 7. 16:13
Closure의 정의

 

  • 외부 함수에 접근할 수 있는 내부 함수 혹은 이러한 원리를 일컫는 용어
  • 스코프에 따라서 내부 함수의 범위에서는 외부 함수의 범위에 있는 변수에
    접근이 가능하지만 그 반대는 불가능하다는 개념
  • 특징으로 외부 함수는 외부 함수의 지역변수를 사용하는 내부 함수가
    소멸할 때까지 소멸되지 않는다
예시

 

function makeFunc() {
  var name = "이름";
  function displayName() {
    console.log(name);
  }
  return displayName;
}

//myFunc변수에 displayName을 리턴함
var myFunc = makeFunc();

//리턴된 displayName 함수를 실행(name 변수에 접근)
myFunc(); // "이름" 콘솔 출력

 

- 일반적으로 함수 안의 지역 변수들은 그 함수가 처리되는 동안에만 존재하기 때문에 displayName 함수가

리턴되면 name 변수에 접근할 수 없다고 예상된다.

- 하지만 js에서는 함수를 리턴할 때 클로저를 형성하기 때문에 클로저가 형성될 당시의 함수와 함수가 선언된 어휘적

환경의 조합 (쉽게 말해 당시의 관계되는 코드들)의 참조를 유지한다. (즉, 기억한다.) 

 

 

'Javascript' 카테고리의 다른 글

Event Loop  (0) 2022.12.21
이터러블, 제너레이터  (0) 2022.12.20
호이스팅과 스코프, TDZ  (0) 2022.07.18
async & await  (0) 2022.06.18
Promise  (0) 2022.06.18
Comments