본문 바로가기
개발 부산물/React & Javascript

[javascript] 클로저를 활용한 static 변수 만들기

by 개탱 2023. 1. 27.
728x90

자바스크립트에서는 C, JAVA와 같은 static 정적 변수가 존재하지않아 필요한 경우 사용에 조금 불편함이 있습니다.

그래서 static 변수를 구현하여 유사하게 사용이 가능합니다.

 

(전역변수는 간단하게 static처럼 사용이 가능하지만 어떤 언어든 전역변수는 좋지않다라는 생각을 하고있어 따로 설명하지 않았습니다.)

 

 아래 코드를 참조하여 사용하시면 됩니다.

let getStaticValue  = ((value) => {
   let i = value;
   return function() {
      return ++i; 
   }
})(0);  
 
console.log(getStaticValue())
//output : 1
console.log(getStaticValue())
//output : 2
console.log(getStaticValue())
//output : 3
console.log(getStaticValue())
//output : 4

 

조금 더 활용하면 아래와 같이 하나의 클로저 함수 생성 후 가져다 쓰는 방식으로 활용이 가능해집니다.

 

let getStaticValue  = ((value) => {
   let i = value;
   return function() {
      return ++i; 
   }
});  
 
 
let a = getStaticValue(0);
console.log(a())
//output : 1
console.log(a())
//output : 2
console.log(a())
//output : 3


let b = getStaticValue(0);
console.log(b())
//output : 1
console.log(b())
//output : 2
console.log(b())
//output : 3
console.log(b())
//output : 4

console.log(a())
//output : 4

댓글