Closure

Suyeon·2020년 11월 3일
0

Interview prep

목록 보기
14/22
post-thumbnail

Closure is when a function is able to access its lexical scope, even when that function is executing outside its lexical scope.

What is closure?

클로져는 Data Privacy를 위해서 사용되는 메커니즘이다. 함수가 생성될 때 클로저가 함께 생성된다.

사전적 정의를 살펴보면 Lexical Environment와 함수의 조합이라고 나와있는데, 말 그대로다. 클로저는 결국 Lexical Scope와 관련이 있다. Lexical Scope덕분에 내부함수에서 외부함수의 스코프에 접근을 할 수 있기 때문이다.

클로저를 사용하기 위해서는, 외부함수안에 내부함수를 만들고 그 내부함수를 리턴하면 된다. 이 때 외부함수가 리턴된 후에도 내부함수는 외부함수의 스코프에 접근을 할 수있는데, 리턴되는 함수의 execution context를 기억하고 있기 때문이다.

Example1

function makeFunc() {
  const name = 'Mozilla';
  function displayName() {
    alert(name);
  }
  return displayName;
}

Example2

const counter = () => {
    const count = 0;
    return () => count++;
}

Example3 (Module Pattern)

const getSecret = (secret) => {
  return {
    get: () => secret
  };
};
profile
Hello World.

0개의 댓글