클로저를 활용한 static 변수 만들기
자바스크립트에서는 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
728x90
728x90
'Dev > [Javascript] React...' 카테고리의 다른 글
React 클래스 변수와 State변수의 역할 및 차이 (1) | 2023.03.14 |
---|---|
fakepath local image File path 로컬 이미지 미리보기 / createObjectURL - javascript (0) | 2023.02.20 |
[JavaScript] rest & delete 연산자 / 불변성을 유지하며 Object에서 내부 key 삭제하기 (0) | 2023.02.08 |
React js | UI Component wrapper / container 방식 children Array 중 일부만 노출 이슈 (0) | 2023.01.18 |
[javascript] MAC OS 파일 첨부시 자소 분리 현상 (No glyph for U+0000 in font 'fontName' ) (6) | 2022.11.14 |