자바스크립트 클로저란
외부함수에서 내부함수가 선언 되었고, 내부함수가 외부함수 실행컨텍스트 내 변수값을 참조하고 있을시,
외부함수가 소멸되어도 내부함수는 클로저 스코프를 통해서 외부함수의 변수값을 계속해서 접근 할 수 있음을 의미한다.
function outter(){
let text = 'hello world';
function inner(text2){
console.log(text + text2);
}
return inner;
}
let closure = outter();
closure('closure'); //hello worldclosure
inner 함수를 리턴하는 outter 함수를 변수 closure에 할당하고 closure 함수에 'closure' 라는 문자열을 인자값으로 호출했을시
결과값은 'hello worldclosure' 가 나온다.
소멸되서 접근이 불가능할줄 알았던 outter 함수의 지역변수인 text는 Inner함수의 클로저스코프에 기억이 되고 있었고 호출이 가능했던것이다.
태클은 언제나 환영입니다. 잘못된 부분이 있다면 언제든 말씀해주시면 감사하겠습니다 :)
'Javascript' 카테고리의 다른 글
자바스크립트 콜백함수란? (Callback Function) (0) | 2022.09.14 |
---|---|
자바스크립트 호이스팅이란? TDZ Temporal Dead Zone (0) | 2022.09.07 |