closure
-
[JavaScript] 클로저(Closure)란?JavaScript 2022. 2. 10. 20:20
자바스크립트에서 어떠한 함수가 존재할 때 해당 함수의 유효 범위는 어디서 실행됐느냐에 따라 달라지는 게 아니라 정의된 위치에 따라서 달라진다. 함수를 호출하는 경우 함수 외부, 내부 가리지 않고 어디서든 작성 가능한 dynamic scope에 해당한다. 그러나, 함수는 딱 한번 정의를 해놓은 후 정적인 위치에 있기에 static scope(lexical scope)를 따르고 있다. 여기서 언급되는 scope는 범위를 의미하는데 구체적으로는 "어떠한 변수에 접근 가능한 범위" 라고 할 수 있다. scope를 크게 보면 global, local로 나뉜다. 클로저를 알기 이전에 필요한 부분을 먼저 살펴보겠다. 전역 범위(global scope)는 내부뿐만 아니라 외부에서도 해당 변수에 접근할 수 있다는 걸 뜻..