: 함수 내부에서 함수를 작성할 때, 클로저를 생선한 것입니다.
: 내부에 작성된 함수가 '클로저'
: 클로저는 차후에 외부 함수의 변수를 사용할 수 있기 때문에 대개 반환하여 사용
function outterfunction(inner) {
function innerfunction(str) {
return inner() + str
}
return innerfunction
}
function outterfunction2() {
return "Hello"
}
closure = outterfunction(outterfunction2)
console.log(closure("정우성"))
cloure = outterfunction(outterfunction2) //innerfunction
closure에 outterfunciton(outterfunction2) 를 할당했을때,
outterfunction 은 innerfunction 함수의 객체를 리턴했으므로,
closure 는 innerfunction 이라고 볼수 있고,
closure('정우성') //innerfunction('정우성')
innerfunction 함수의 파라미터로 '정우성'을 받았다고 생각하고,