반응형

클로저 2

[JavaScript] 스터디 8일차_ 클로저 (3) 활용(부분적용함수, 커링함수)

클로저(1) 개념 및 원리 게시글 보러가기 클로저(2) 활용 게시글 보러가기 3. 부분적용함수(Partial application) 부분적용함수(Partially applied function)란 n개의 인자를 받는 함수에 미리 m개의 인자만 넘겨 기억시켰다가, 나중에 (n-m)개의 인자를 넘기면 비로소 원래 함수의 실행결과를 얻을 수 있게끔 하는 함수 ⭐ 여러개의 인자를 전달할 수 있고, 실행 결과를 재실행할 때 원본 함수가 무조건 실행된다. 🌞 부분적용함수를 왜 쓸까? -> 미리 일부 인자를 넘겨두어 기억하게끔하고 추후 필요한 시점에 기억했던 인자들까지 함께 실행하고 싶을 때 3-1) 부분적용함수 예제_1번 - bind 메서드를 통해 this와 함수에 미리 넘길 인수를 일부 지정해서 새로운 함수를 만..

[JavaScript] 스터디 6일차_ 클로저 (1) 개념 및 메모리 관리

1. 클로저의 의미 및 원리 이해 MDN에서 정의하는 클로저는 "클로저는 함수와 그 함수가 선언될 당시의 Lexical Environment의 상호관계에 따른 현상" 어떤 함수 A에서 선언한 변수 a를 참조하는 내부변수 B를 외부로 전달할 경우, A의 실행 컨텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상 1) let 선언 변수는 호이스팅 되므로 렉시컬 환경에는 올라가지만 초기화는 되지 않는다. 2) 함수선언은 바로 초기화됨 3) let amy에서(1번째 줄) 할당이 안되어있기 때문에 undefined임 4) amy = 29 로 할당됨 5) plusAge(1)에서 새로운 렉시컬 환경이 생성된다. 현재 내부 렉시컬 환경은 외부 렉시컬 환경을 참조한다. (내부 렉시컬 환경에서 amy를 찾을 수 없어 ..