JS

클로저 (Closure) 란?

매일매일코드일기장 2022. 3. 29. 21:16

클로저란? 

클로저는 내부 함수가 정의 될 때 외부 함수의 환경을 기억하고 있는 내부 함수를 말합니다.

외부 함수안에서 선언된 내부함수는 그 외부 함수의 지역변수나 함수에 접근하여 사용 할 수 있습니다.

 

클로저 예시

function outter() {  // 외부 함수
  var data = 1;
  
  function inner() { // 내부 함수
    return data;
  }
  
  return inner();
}

outter 함수 안에는 지역변수 data와 내부 함수 inner가 선언 되어있고 inner 함수는 지역변수 data를 반환하고 있습니다.

 

클로저 함수 호출

var func = outter();
console.log(func);

outter 함수의 반환 값은 inner 함수입니다. inner 함수를 호출해 보았습니다.

 

결과

1

지역변수 data의 값 1이 출력되었습니다. 원래는 outter 함수를 호출하지 않았기 때문에 지역변수 data를 사용하지 못하는 것이 일반적이지만 JS에서는 사용 할 수 있습니다.

'JS' 카테고리의 다른 글

자바스크립트 배열 메서드 3: reduce  (0) 2022.03.29
자바스크립트 배열 메서드 2: map  (0) 2022.03.29
자바스크립트 배열 메서드 1: forEach  (0) 2022.03.29
호이스팅이란?  (0) 2022.03.24