함수를 어디에서 호출했느냐에 따라서 유효범위가 달라진다면 동적 스코프(dynamic scope)라 한다.
하지만 자바스크립트는 어디서 정의했느냐에 따라서 유효범위가 달라지는 정적 스코프(static scope, lexical scope)를 채택하고 있다.
closure: 동봉하다, 폐쇄적인 느낌
함수가 만들어지는 시점에서, 그 함수의 부모 함수가 가지고 있는 scope, 유효 범위, 변수 등을 그 함수가 동봉해서 가지고 있다. (내부적으로 scope으로 간직하고 있다.) 그래서 언제든지 호출하면 거기에 접근 할 수 있다.