function createCounter() { let count = 0; } 현재 count 변수는 Closure가 적용되기 전이라 자유 변수 function createCounter () { let count = 0; return function (){- 익명 함수가 호출 될 때 마다 현재 count값을 1씩 증가시킨다. count += 1; return count; } } const myCounter = createCounter(); console.log(myCounter());// 1 console.log(myCounter());// 2 console.log(myCounter());// 3 이때 익명 함수가 Clousure의 핵심 Closure 덕분에 count +=1의 count 변수가 상태를 ..
closure
열린 변수를 닫힌 변수로 만든다. 람다 함수에서 온 개념. 내부 함수가 외부 함수의 변수에 접근할때 생성 열린 람다식 하나 이상의 자유 변수를 포함하는 람다 표현식 자유 변수란 ? 우리가 사용하는 일반적인 변수를 의미, 외부에서 정의되고 이로부터 참조되는 변수 닫힌 람다식 내부에 자유 변수가 없는 람다 표현식 자유 변수가 닫힌 람다식 Closure에 의해 닫히면 묶인 변수가 된다. 이렇게 되면 종속 변수 또는 제한 변수라 불리게 되고, 클로저가 활성 상태인 동안에는 클로저가 해당 변수를 참조하고 있기 때문에 사용중으로 간주하여 메모리를 해제하지 않는다. 변수의 메모리 할당이 계속 된다는 뜻 (가비지 컬렉터의 대상에서 제외) 반대로 참조가 없어지면 ( 클로저가 더이상 사용되지 않는다면) 가비지 컬렉터에 의..