(JS) 함수를 리턴하는 함수

호두파파·2021년 1월 24일
0

(JS) 함수

목록 보기
3/10

함수도 일급 객체이므로 일반 값처럼 함수 자체를 리턴할 수 있다.
이러한 특징을 활용해 함수를 호출함과 동시에 다른 함수로 바꾸거나, 자기 자신을 재정의하는 함수를 구현할 수 있다.

let self = function() {
  console.log('a');
  return function() {
    console.log('b');
  }
}
self = self(); // a
self() // b

처음 self() 함수가 호출됐을 때는 'a'가 출력된다. 그리고 다시 self 함수 변수에 self() 함수 호출 리턴값으로 내보낸 함수가 저장된다.

두번째로 self()함수가 호출됐을 때는'b'가 호출된다. 즉, self()함수 호출 후에, self함수 변수가 가리키는 함수가 원래 함수에서 리턴받은 새로운 함수로 변경되었기 때문이다.

profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글