생명주기가 끝난 외부함수의 변수를 참조하는 함수를 말함.
function outer(){
var a = 10;
function inner() {
a++;
console.log(a);
}
return inner();
}
이때, inner() 함수를 클로저
라고 하며, 변수 a를 자유변수라고 함.
클로저의 뜻은 '자유변수에 엮여있다'
클로저는 보호막의 역할을 하며, 클로저로 인해 변수나 함수를 private 하게 사용할 수 있다.
==> 변수의 유효범위를 제한하려는 용도로 사용할 수 있음(캡슐화)
JS의 모든 객체는 부모가 존재하고, 부모와 연결되어있음
따라서 부모 property와 methodㅇ를 상속받아 사용가능함.
참고하기
https://www.youtube.com/watch?v=yXnbvyl04V4 생활코딩
https://victorydntmd.tistory.com/52 victolee님 블로그