JavaScript

[JavaScript] 클로저

SongMinu 2019. 12. 27. 22:08
728x90

내 개인적인 생각이긴 하지만

아마 자바스크립트를 사용하고 있는 사람들 중에 자신이 짠 소스 중에 클로저를 사용했는데

그게 클로저라는건 모르고 있는 사람들이 더 많을 것 같다는 생각이 든다..

 

클로저라해서 closer 라고 생각했는데 closure 였음

closer: 가까이, 닫는 것

closure: 폐쇄

 

1. 함수 내부에 함수를 만들었을 때 내부에 만들어진 함수

2. 클로저는 차후에 외부 함수의 변수를 사용할 수 있기 때문에 대개 반환하여 사용

3. 클로저는 외부 함수의 변수에 접근할 수 있기 때문에 일반적으로 두가지 목적을 위해 사용

  - 사이드 이펙트 제어하기

  - private 변수 생성하기

 

-> 사이드 이펙트 제어하기

  - 함수에서 값을 반환할 때를 제외하고 무언가를 행할 때 사이드 이펙트가 발생

  - 예) Ajax요청, timeout 생성, console.log 선언 등

 

-> private 변수

  - 함수 내의 변수는 함수 바깥에서 접근할 수 없음

  - 그 변수들은 접근할 수 없기 때문에 private 변수라고 불림

  - 해당 변수들에 접근해야할 경우가 종종 발생하는데, 클로저를 활용하면 가능

 

 

나도 몰랐음...

 

참고 사이트

https://blueshw.github.io/2017/04/12/javascript-closure/

반응형