- 외부 함수의 변수에 접근할 수 있는 내부함수
- 함수를 리턴하는 함수
- 자신이 생성될 때의 환경(스코프)를 기억하는 함수. (스코프 밖에서 호출되어도 그 환경에 접근할 수 있다.)
- 외부 함수의 실행이 끝나도 외부함수 내 변수가 메모리에 저장 되어있다.
- Private한 변수를 설정하기 좋은 메커니즘
- 모듈화에 유리하다.
const add = function(x){
return funtion(y){
return x+y;
}
}
/* 1. **외부함수**는 y에 접근할 수 **없다.**
2. **내부함수**는 x에 접근할 수 **있다.**
*/
스코프, 클로저 참고자료
https://www.youtube.com/watch?v=MbYShFxp-j0
https://www.youtube.com/watch?v=L8OvfMfIWa0&t=5s