[Achievement Goal]
클로저 함수 정의와 쓰임새에 대한 이해
클로저가 갖는 스코프 의미 알기.
클로저가 쓰이는 유용한 코딩패턴 알기.
const closer (a) => (b) => {a + b} //화살표 함수식
const closer = function(a){
return function(b){
return a + b
}
}
클로저에서의 스코프 접근 범위는 리턴하는 곳이 기준이 된다.
일반적인 함수에서 지역변수는 함수실행이 끝나면 사용이 불가하지만,
클로저함수는 외부함수의 식이 종료되어도 외부함수 내 지역변수가 저장이 된다.
const closer = function(a){
return function(b){
return a + b
}
}
closer(3)(4)
or
sum(4)
이미 변수 sum에 closer의 a값인 (3)이 할당되어 있기 때문에 두번째 함수식의 매개변수 b의 자리에 4를 넣는다면 3+4, 값은 똑같이 7 을 리턴하게 된다.
또한 클로저 함수는 객체를 이용하여 내부함수를 여러개 만들 수 있다.
이럴 경우 내부함수는 여러개지만, 객체라는 주머니 하나만 리턴하게 되어 결과값도 객체로 나오게 된다.