2017 Nam Insik Portfolio site ː Designed by werty.co.kr ː nis@werty.co.kr
 
 
 
 
 
 
 
 
JS – 클로저를 쉽게 이해해보자 (병맛 주의)

자바스크립트에서 클로저가 궁금해졌다.
이유는 독학으로만 익혀온 개발이기 때문에 이런 명칭에 생소했기 때문이다.

클로저(Closure) 는 사실 새로운 문법이나 방법도 아니다.
어찌보면 활용하는 방법에 대해서 정의내려진 것 같다.

이해를 돕고자 이미지를 사용해봐야하는데…
이 예제가 제대로 예제가 될 지 나름 걱정이다.

자! 우리는 일단 우리를 스나이퍼라 칭하자.
코딩 전투에 나가는 스나이퍼ㅋㅋㅋㅋㅋㅋㅋㅋ

(영화 미션 임파서블 로그네이션 중)

그럼 커다란 백에 장비들을 셋팅해서 가야하지 않는가?
장비를 사러 샵에 가보자

이제 상점 주인에게 스나이퍼를 위한 장비를 달라고 한다.

이렇게 패키지로 파는 가방을 스나이퍼셋트라는 팔고 있더라.

그래서 나는 스나이퍼셋트를 하나 샀다.

이제 내가구매한물건 에 상태를 알아봤다.

그럼 돌아오는 답이 잘나가용의 총에는 12발이 남았습니다. 라고 나올 것이다.

이제 한발을 쏴보자.

빵야!

이렇게 쏘고 나면 다시 현재 상태가 궁금하지 않은가? (당연히 한발이 나간건 알겠지만…)

다시 호출해보자.

그럼 돌아오는 답이 잘나가용의 총에는 11발이 남았습니다. 라고 할 것이다.


자! 이제 클로저가 무엇인지 다시 해당 함수를 보자.

여기서 내부함수인 장비상태발사가 바로 클로저이다.

멋지게 말하면, 클로저는 독립적인 (자유) 변수 (지역적으로 사용되지만, 둘러싼 범위 안에서 정의된 변수)를 참조하는 함수들이다. 다른 말로 하면, 이 함수들은 그들이 생성된 환경을 ‘기억’한다. 라고 https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures 여기에 써있다.

위 예제는 알림창으로 jsfiddle에 올려보았다.

위 설명은 개념을 이해하기 위한 단순한 예제이다.
이제 비꼬는 방법과 활용하는 방법은 더 찾아서 이용하면 된다.

HoldHolic

nain

이메일 : nis@naminsik.com

리뉴얼하려고 생각한지가 어느덧 3년이 지났다. ㅠ 망...
.