본문 바로가기
개발/javascript

[javascript] Closures 예제

by 가시죠 2021. 1. 18.
반응형

Closures 예제

함수와 함수 밖의 변수 접근

let outsideVariable = true;

const myFunction = () => {
  // 함수 밖의 모든 데이터 접근 가능
  // outsideVariable 변수 접근 가능
}

 

함수와 함수 밖의 글로벌 변수 접근 예제

const a = 3;                                       //===Global Scope
                                                   //===
function add() {              //--- Function Scope //===
  console.log( a + a ); // 6  //---                //=== 
}                             //---                //=== 
                                                   //===
add();                                             //===

 

함수에서 함수 밖의 글로벌 변수값에 접근

let counter = 0;

function add() {
  counter++;
}

add();  // counter = 1
add();  // counter = 2
add();  // counter = 3

 

함수에서 함수 안의 변수에 접근

function add() {
  let count = 0;
  counter++;
  return counter;
}

add();  // counter = 1
add();  // counter = 1
add();  // counter = 1

 

함수에서 함수 안의 변수에 접근하는 함수를 다시 정의

function add() {
  let counter = 0;
  function plus() { counter++; }
  plus();
  return counter;
}

add();  // counter = 1
add();  // counter = 1
add();  // counter = 1

 

변수에 함수를 정의하여 에서 리턴에 함수를 정의하여 연산 후 리턴

const add = (function () {
  let counter = 0;
  return function() {counter++; return counter}
})();

add();  // counter = 1
add();  // counter = 2
add();  // counter = 3
반응형

댓글