클로저

0

javascript

목록 보기
9/34
post-thumbnail
post-custom-banner

📍 클로저

외부 함수의 변수에 접근할 수 있는 내부 함수


문제를 통해서 클로저를 이해해 보자

function outerFn(){
  let outerVar = 'outer';
  console.log(outerVar);
  
  function innerFn(){
    let innerVar = 'inner';
    console.log(innerVar);
  }
  return innerFn;
}

1) outerF()();
-> 1번 : outer 와 inner이 출력된다. // ()()괄호가 두개 이면 바깥함수와 안쪽 함수 둘다 호출 하는것이다.
2) let innerFn = outerFn();
-> 2번 : outer 이 출력된다. // outerFn(); 할경우 outerFn이 출력되고 innerFn은 그냥 리턴된다. 근데 그것을 innerFn변수에 담으면 리턴 innerFn은 리턴되지 않는다
3)innerFn();
-> 3번 : inner 이 출력된다. // 위에서 innerFn에 리턴되지 않은 innerFn()함수를 담았으므로 innerFn()함수가 실행되면서 innerFn을 출력한다.


📍커링
함수 하나가 n개의 인자를 받는 대신 n개의 함수를 만들어 각각 인자를 받게 하는 방법

function adder(x){
	return function(y){
      return x+y;
    }
}
adder(2)(3);  //5

-> x에2가 y에 3이 들어갔다.

profile
👩🏻‍💻항상발전하자 🔥
post-custom-banner

0개의 댓글