...

์๋ฐ์คํฌ๋ฆฝํธ static ๋ณ์ ๊ตฌํ
์ฐ์ ๊ฒฐ๋ก ๋ง ๋งํ์๋ฉด, C๋ ์๋ฐ์ ์๋ static ๋ณ์ ๋ฌธ๋ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์กด์ฌํ์ง ์๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฌ์ฉํ์ง ๋ชปํ๋๋ ์ง๋ฌธ์ ๊ทธ๊ฑด ๋ ์๋๋ค. ๊ฐ์ ์ ์ผ๋ก ๊ตฌํํด์ ์ ์ ๋ณ์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
์ ์ญ ๋ณ์ ์ฌ์ฉํ๊ธฐ
๋ฌด์ํ๊ฒ ์ ์ญ๋ณ์๋ฅผ static๋ณ์๋ก ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ฐ์ฅ ๊ฐํธํ์ง๋ง ์ ์ญ๋ณ์๋ ๊ฐ๊ธ์ ์ผ๋ก๋ ์ฐ์ง ์๋ ๊ฒ์ด ๋ฐ๋์ง ํ๋ค.
var cnt=0; // ์ ์ญ๋ณ์
function aa() {
cnt++;
console.log(cnt);
}
aa() // 1
aa() // 2
aa() // 3
aa() // 4
ํด๋ก์ ๋ฅผ ์ด์ฉํ ๊ตฌํ
let static_value = (function static_func(value) {
let i = value;
return function() {
return ++i;
}
})(0); // ์ ์ ๋ณ์ ์์์ 0์ผ๋ก ์ด๊ธฐํ
function main() {
let val = static_value(); // ์ ์ ๋ณ์ val ์ ์ธ. ์ด์ ํจ์ ํธ์ถํ ๋ ๋ง๋ค ๋ณ์๊ฐ์ด ํ๋์ฉ ์ค๋ฅธ๋ค.
console.log(val);
}
main(); // 1
main(); // 2
main(); // 3
main(); // 4
[JS] ๐ ํด๋ก์
ํด๋ก์ (closure) - ํด๋ก์ ๋ ๋ฐํ๋ ๋ด๋ถํจ์๊ฐ ์์ ์ด ์ ์ธ๋์ ๋์ ํ๊ฒฝ(Lexical environment)์ธ ์ค์ฝํ๋ฅผ ๊ธฐ์ตํ์ฌ ์์ ์ด ์ ์ธ๋์ ๋์ ํ๊ฒฝ(์ค์ฝํ) ๋ฐ์์ ํธ์ถ๋์ด๋ ๊ทธ ํ๊ฒฝ(์ค์ฝํ)์ ์ ๊ทผํ
inpa.tistory.com
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.