์ดํฐ๋ ์ดํฐ ํจํด
์ดํฐ๋ ์ดํฐ ํจํด์ ์ดํฐ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํด์ ์ปฌ๋ ์ ์ ์์๋ค์ ์ ๊ทผํ๋ ๋์์ธ ํจํด์ด๋ค. ์ด๋ฅผ ํตํด ์ํํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ง ์๋ฃํ์ ๊ตฌ์กฐ์ ์๊ด์์ด ์ดํฐ๋ ์ดํฐ๋ผ๋ ํ๋์ ์ธํฐํ์ด์ค๋ก ์ํ๊ฐ ๊ฐ๋ฅํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์์ ์ดํฐ๋ ์ดํฐ ํจํด
const mp = new Map()
mp.set('a',1)
mp.set('b',2)
mp.set('c',3)
const st = new Set()
st.add(1)
st.add(2)
st.add(3)
for (let a of mp) console.log(a)
for (let a of st) console.log(a)
/*
['a',1]
['b',2]
['c',3]
1
2
3
*/
๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ์ธ Set, Map์์๋ ๋๊ฐ์ for a of b๋ผ๋ ์ดํฐ๋ ์ดํฐ ํ๋กํ ์ฝ์ ์ํํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ ธ์ถ๋ชจ๋ ํจํด
์ฆ์ ์คํ ํจ์๋ฅผ ํตํด private, public๊ณผ ๊ฐ์ ์ ๊ทผ ์ ์ด์๋ฅผ ๋ง๋๋ ํจํด์ ๋งํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ private๋ public ๊ฐ์ ์ ๊ทผ ์ ์ด์๊ฐ ์กด์ฌํ์ง ์๊ณ ์ ์ญ ๋ฒ์์์ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ ธ์ถ๋ชจ๋ ํจํด์ ํตํค์ ์ ๊ทผ ์ ์ด์๋ฅผ ๊ตฌํํ๊ธฐ๋ ํ๋ค.
* ์ฆ์ ์คํ ํจ์ : ํจ์๋ฅผ ์ ์ํ์๋ง์ ๋ฐ๋ก ์คํํ๋ ํจ์. ์ด๊ธฐํ ์ฝ๋ ๋ฑ์์ ๋ง์ด ์ฌ์ฉํ๋ค. ๋ณ์๋ฅผ ์ ์ธํด์ ์ฆ์ ์คํํจ์์ ๋ฆฌํด๊ฐ ์ ์ฅ๋ ๊ฐ๋ฅํ๊ณ , ์ ์ฅํ ๋ณ์๋ฅผ ์ ์ธํ์ง ์๊ณ ๋ฐ๋ก ์ฆ์ ์คํํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
์์)
(function square(x) {
console.log(x*x);
})(2)
// 4
const pukuba = (() => {
const a = 1
const b = () => 2
const public = {
c : 2,
d : () => 3
}
return public
})()
console.log(pukuba)
console.log(pukuba.a)
// { c: 2, d: [Function: d] }
// undefined
a, b๋ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ ๋ณ์๋ ํจ์์ด๊ณ , private ์ ๊ทผ ์ ์ด์๋ฅผ ๊ฐ์ง๋ค๊ณ ํ ์ ์๋ค.
c, d๋ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ ๋ณ์๋ ํจ์์ด๊ณ , public ์ ๊ทผ ์ ์ด์๋ฅผ ๊ฐ์ง๋ค๊ณ ํ ์ ์๋ค.
์ฐธ๊ณ )
์ ๊ทผ ์ ์ด์
public : ํด๋์ค์์ ์ ์๋ ํจ์์์ ์ ๊ทผ ๊ฐ๋ฅํ๋ฉฐ ์์ ํด๋์ค์ ์ธ๋ถ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅํ ๋ฒ์
protected : ํด๋์ค์์ ์ ์๋ ํจ์์์ ์ ๊ทผ ๊ฐ๋ฅํ๋ฉฐ ์์ ํด๋์ค๋ ์ ๊ทผ ๊ฐ๋ฅํ์ง๋ง, ์ธ๋ถ ํด๋์ค์์ ์ ๊ทผ ๋ถ๊ฐ๋ฅํ ๋ฒ์
private : ํด๋์ค์์ ์ ์๋ ํจ์์์ ์ ๊ทผ ๊ฐ๋ฅํ์ง๋ง ์์ ํด๋์ค์ ์ธ๋ถ ํด๋์ค์์ ์ ๊ทผ ๋ถ๊ฐ๋ฅํ ๋ฒ์
'CS > ๋์์ธ ํจํด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์์ธ ํจํด] MVP ํจํด, MVVM ํจํด (0) | 2023.08.07 |
---|---|
[๋์์ธ ํจํด] MVC ํจํด (0) | 2023.08.03 |
[๋์์ธ ํจํด] ํ๋ก์ ํจํด(Proxy Pattern)๊ณผ ํ๋ก์ ์๋ฒ(Proxy Server) (0) | 2023.08.03 |
[๋์์ธ ํจํด] ์ต์ ๋ฒ ํจํด(Observer Pattern) (0) | 2023.08.02 |
[๋์์ธ ํจํด] ์ ๋ต ํจํด(Strategy Pattern) (0) | 2023.08.02 |