Closure?

김영환·2020년 11월 29일
0

Python

목록 보기
4/11
post-thumbnail

클로저(Closure)

: 함수 내부에서 함수를 작성할 때, 클로저를 생선한 것입니다.
: 내부에 작성된 함수가 '클로저'
: 클로저는 차후에 외부 함수의 변수를 사용할 수 있기 때문에 대개 반환하여 사용

function outterfunction(inner) {
    
  	function innerfunction(str) {
        return inner() + str
    }
	return innerfunction
}

function outterfunction2() {
    return "Hello"
} 

closure = outterfunction(outterfunction2)

console.log(closure("정우성"))
  1. innerfunction는 outterfunction의 내부함수입니다.
  2. 외부함수인 outterfunction 의 파라미터 inner 을 참조하고
  3. 외부함수인 outterfunction 는 innerfunction을 반환합니다.

cloure = outterfunction(outterfunction2) //innerfunction
closure에 outterfunciton(outterfunction2) 를 할당했을때,
outterfunction 은 innerfunction 함수의 객체를 리턴했으므로,
closure 는 innerfunction 이라고 볼수 있고,
closure('정우성') //innerfunction('정우성')
innerfunction 함수의 파라미터로 '정우성'을 받았다고 생각하고,

0개의 댓글