JS_#8_클로저

Jinwoo Choi·2022년 9월 6일
0

부트캠프

목록 보기
13/29
post-thumbnail

📔 클로저(closure)

“함수와 함수가 선언된 어휘적(lexical) 환경의 조합을 말한다. 이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성된다.” - MDN -

  • Point
    클로저 함수의 정의와 특징에 대해 이해
    클로저가 갖는 스코프 범위를 이해
    클로저를 이용해 유용하게 쓰이는 몇 가지 패턴을 이해

📔 클로저 함수

  • 외부 함수의 변수에 접근할 수 있는 내부 함수
  • 함수를 리턴하는 함수
  • 내부 함수는 외부 함수에 선언된 변수에 접근 가능
const adder = x => y => x + y
 //위의 코드와 동일하게 작동하는 function 코드는 아래와 같다.

const adder = function (x) {return function (y) {
  return x + y;
  }
}

📔클로저 모듈 패턴

const makeCounter = {} => {let value = 0;return {
  increase: () => {
   value = value + 1
  },
  decrease: () => {
   value = value - 1
  },
  getValue: () => value
 }
}

const counter1 = makeCounter();
  • 위 모듈에서 value라는 변수에 값을 새롭게 할당할 수 없다 → 스코프 규칙에 의해 불가능(정보의 접근 제한 캡슐화 라 부른다.)
  • 함수 재사용성을 극대화하여, 함수 하나를 완전히 독립적인 부품 형태로 분리하는 것을 모듈화 라 부른다.

🩺 개선하자

  • 어렵지 않은 문제임에도 깊이 생각해보지 않고, 쉽게 풀이를 내놓으려한다. 더 생각하고 고민해 나은 풀이를 찾는 연습을 하자.
profile
Let your code speak for you.

0개의 댓글