웹표준,웹접근성(html, html5, css, css3, javascript, jQuery, jQueryMobile, snecha, senchaTouch, php, mobileWebApp)
클로져(closure) 본문
클로져(closure)
function closure(){ // 함수 선언
var output = 'closure'; // output 변수에 문자열 closure 대입
}
console.log(output); // 변수 output 출력
위 코드는 아래와 같이 output 변수가 정의되지 않았다는 메세지와 함께 실행 되지 않는다.
output 변수는 closure 함수 내부에 포함된 지역 변수이기 때문에 외부에서 호출해서 쓸수 없다.
지역변수는 함수가 실행될때 생성되고 함수가 종료될때 사라진다. 그런데 이것을 다른 함수가 호출 가능하게 하는 것을 클로져(closure)라고 한다.
ex ) closure 의 예와 실행
function closure(){ // closure 함수 선언
var output = 'closure'; // output 변수에 문자열 closure 대입
return function(){ // return 값으로 함수를 던짐
console.log(output); // 화면에 output 출력
}
}
// 실행방법 1
closure()(); // 함수를 바로 실행시킨다.
// 실행방법2
var Print = closure(); // Print변수에 closure()함수를 담는다.
console.log(Print()); // Print변수를 화면에 출력
closure 단어가 2번 출력된것을 볼 수 있다.