본문 바로가기
Computer Science/JavaScript

자바스크립트 Chapter 21 Closures

by Write and Remember 2019. 5. 14.

 

모든 자바스크립트 개발자가 알아야 하는 33가지 개념

 

Chapter 21 Closuers

 

자바스크립트 클로저에 대해 알아보자.

 

Chapter 6에서 스코프(Scope)를 다시 보고 클로저를 보자.

 

2019/04/22 - [Computer Science/JavaScript] - 자바스크립트 Chapter 6 Scope

 

자바스크립트 Chapter 6 Scope

자바스크립트 핵심 컨셉 33가지 챕터 1 ~ 5는 이전 글에서 간단하게 정리하였고 2019/03/15 - [Computer Science/Vanilla-JS, ES6] - 자바스크립트 핵심 컨셉 33개 자바스크립트 핵심 컨셉 33개 자바스크립트 개..

jeongw00.tistory.com

 

클로저란?

 

함수와 그 함수가 선언된 어휘(lexical) 환경의 조합이다.

 

즉 중첩된 함수로 구성된 구조이다.

 

클로저를 사용하면 내부 함수에서 외부 함수의 범위에 접근할 수 있다.

 

출처: https://code.likeagirl.io/simplified-javascript-getting-started-with-closures-f40f65317d00

 

코드로 표현해보면,

 

const getAvg = (x, y) => {
  return {
    avg: () => (x + y) / 2
  }
}

getAvg(1,2).avg();

 

getAvg는 외부 함수(Outer Function), avg는 내부 함수(inner Function)이다.

 

getAvg에 의해 둘러싸여 있다.

 

avg는 getAvg의 lexical environment에 접근할 수 있고

 

avg는 x, y를 인수로 avg에 명시적으로 전달하지 않았지만

 

x, y에 대한 접근 권한을 가진다.

댓글0