다음과 같이 함수 내부에 함수를 넣고 렉시컬 환경을 조성해주는 것이 클로져라고 하는데,
개인적인 생각으로는 클래스를 사용하는 것이 좀 더 직관적이고 객체지향적이라 좋은 것 같다.
function makeFunc(){
let cache=[];
function fibo(n){
if(cache[n]!=null) return cache[n];
if(n<=1) return cache[n]=n;
return cache[n] = fibo(n-1)+fibo(n-2);
}
return fibo;
}
const fibo = makeFunc();
fibo(4);