외부 함수 안에서 선언된 내부 함수는 그 외부 함수의 지역 변수가 함수에 접근하여 사용 가능
function sayHi(name){
let sentence = 'Hi '+ name
return function(){
return sentence
};
}
let sayToHeeYun = sayHi('HeeYun');
console.log(sayToHeeYun()); // 'Hi HeeYun'
전역 변수는 사용 범위가 넓어서 쉽게 접근 가능하고 변경이 가능하다.
따라서, 오류를 일으킬 수 있는 전역 변수를 사용하는 대신에 외부 함수 안에서 지역 변수를 두어서 내부 함수가 지역 변수를 제어하는 방향이 안전하다.
클로저 함수를 각각의 변수에 할당하면 각자 독립적으로 값을 사용하고 보존할 수 있다.
또한 각각의 변수에 할당한 클로저 함수는 재사용하기 편하다.