lexical : 어휘적 범위 지정 과정에서 변수가 어디에서 사용 가능한지 알기 위해 그 변수가 소스코드 내 어디에서 선언되었는지 고려한다는 것을 의미
currying
은 n개의 인자만큼 n개의 함수를 만드는 프로그래밍 방식이다.
커링은 동일하게 반복되는 인자를 커링 방식으로 함수를 짜서 반복되는 코드를 제거한다.
Closure
는 외부 함수의 변수에 접근할 수 있는 내부 함수 또는, 이러한 작동 원리를 일컫는 용어
function makeFunc() {
let name = "Mozilla";
function displayName() {
alert(name);
}
return displayName;
}
let myFunc = makeFunc();
//myFunc변수에 displayName을 리턴함
//유효범위의 어휘적 환경을 유지
myFunc();
//리턴된 displayName 함수를 실행(name 변수에 접근)
클로저의 특징 중 하나는 클로저 함수가 리턴된 이후에도 외부 함수의 변수를 저장하고 있는 점이다.
위 코드처럼 myFunc에 displayName()
이 리턴된 이후에도 name
을 계속해서 갖고 있다.