Currying vs Closure

Judo·2020년 11월 14일
0
post-thumbnail

lexical : 어휘적 범위 지정 과정에서 변수가 어디에서 사용 가능한지 알기 위해 그 변수가 소스코드 내 어디에서 선언되었는지 고려한다는 것을 의미

Currying

currying 은 n개의 인자만큼 n개의 함수를 만드는 프로그래밍 방식이다.

커링은 동일하게 반복되는 인자를 커링 방식으로 함수를 짜서 반복되는 코드를 제거한다.

Closure

Closure는 외부 함수의 변수에 접근할 수 있는 내부 함수 또는, 이러한 작동 원리를 일컫는 용어

function makeFunc() {
  let name = "Mozilla";
  function displayName() {
    alert(name);
  }
  return displayName;
}

let myFunc = makeFunc();
//myFunc변수에 displayName을 리턴함
//유효범위의 어휘적 환경을 유지
myFunc();
//리턴된 displayName 함수를 실행(name 변수에 접근)

클로저의 특징 중 하나는 클로저 함수가 리턴된 이후에도 외부 함수의 변수를 저장하고 있는 점이다.
위 코드처럼 myFunc에 displayName()이 리턴된 이후에도 name을 계속해서 갖고 있다.

profile
즐거운 코딩

0개의 댓글