[JS] Closure
자바스크립트 클로저에 대한 개념에 대한 포스팅입니다.
✅ Closure 란 무엇인가요?
함수와 함수가 선언된 어휘적 환경(Lexical Environment)의 조합입니다. 또한 함수가 속한 Lexical Scope를 기억하여 함수가 Lexical Scope 밖에서 실행될 때도 그 스코프에 접근할 수 있게 하는 기능을 말합니다.
function outer() {
var a = 2;
function inner() {
console.log(a);
}
return inner;
}
var func = outer();
func(); // 2
내부함수인 inner()
는 해당 스코프의 변수인 a
를 참조하고 있습니다.
스코프 외부에서 inner()
가 실행되어도 해당 스코프를 기억하기 때문에 2를 출력하게 됩니다.즉 여기서 클로저는 inner()
입니다.
Leave a comment