클로저[TIL-15]

김정훈·2021년 7월 2일
0

javascript

목록 보기
8/19

1. 클로저

클로저 함수는 외부함부의 변수에 접근할 수 있는 내부함수

1. 클로저 함수는 "함수를 린턴하는 함수"이며 이런 함수는 클로저의 형태를 만든다.
2. 클로저는 리턴하는 함수에 의해 스코프가 구분된다. 클로저의 핵심은 스코프를 이용하여 변수의 접근 범위를 닫는 데에 있다. 이로써 클로저 함수는 "내부 함수는 외부 함수에 선언된 변수에 접근이 가능!"

Q. 외부 함수는 y에 접근이 가능한가요?
   -> no, 바깥 스코프에서는 안쪽 스코프로의 접근이 불가능합니다.
   
Q. 내부 함수는 x에 접근이 가능한가요?
   -> yes, 안쪽 스코프는 바깥 스코프에서 선언된 변수에 접근이 가능합니다.
   
3. 클로저를 통해 메소드를 같이 묶어서 다룰 수 있다. 클로저는 모듈화에 유리

2. Checkpoint

함수가 리턴하고 있는 익명 함수

let seenYet = function() {
  let archive = {};
  return function(val) {
    if (archive[val]) {
      return true;
    } 
    archive[val] = true;
    return false;
  }
}
seenYet이 반환하는 익명함수는 외부함수 seenYet의 스코프에 선언된
변수 archive에 접근할 수 있기 때문에 클로저입니다.

변수의 접근 범위 스코프와 클로저를 명확히 이해해야 하는 문제였다. 
문제의 의도를 정확히 파악하지 못하였고, 함수의 흐름을 읽지 못하였다. 
변형된 문제가 나왔을때 정확히 판단하기 위해서는 확실한 이론 정리가 필요함을 느꼈다.

3. 정리

어느새 3주라는 시간이 흘러갔다. 집중이 흐트러진 날도 있었고 시간 가는줄 모르고 고민하던 날도 있었다. 이런 고민하는 날들이 나에게 도움이 되리라 믿고 있고, 확실히 페어와 함께 진행할 때 집중력이 더 발휘 된다는 걸 다시한번 느꼈다. 시간이 갈수록 난이도가 올라가고 익혀야 할 내용도 많아지고 있다. 반복적인 복습과 꾸준한 이론정리가 꼭 필요할 것 같다.

profile
프론트엔드 개발자를 꿈꾸고 있습니다!

0개의 댓글

관련 채용 정보