μ€λμ μ 체μ μΌλ‘ κΆκΈνλ μ§λ¬Έκ³Ό λ΅, κ·Έλ¦¬κ³ κ°λ¨ν μ λ¦¬λ§ νμμ΅λλ€.
μ°μ μ λ²μ μ 리νλ ν΄λ‘μ λ₯Ό λ€μ λ³΄κ³ μλ€.
ν΄λ‘μ λ μΌλ§λ μ μ΄ν΄νλλμ λ°λΌ μμνλ μ½λμ ν리ν°, νμ§ λ±μ λν΄ ν° μν₯μ λΌμΉλ€κ³ νλ€. λν ν¨μμ ν¨μκ° μ μΈλ μ΄νμ νκ²½μ μ‘°ν©μ΄λΌκ³ λ νλ€.
ν΄λ‘μ μ λν μμ νλλ§ λ³΄κ³ κ°μ.
function Counter() {
let count = 0;
function increase() {
count++;
}
function printCount() {
console.log(`count: ${count}`);
}
return {
increase,
printCount,
};
}
const counter = Counter();
counter.increase();
counter.increase();
counter.printCount(); // count: 2
console.log(counter.count); // undefined
μ¬κΈ°μ counter.countλ₯Ό μΆλ ₯ν΄λ³΄λ©΄ undefined
κ° λμ¨λ€. κ·Έ μ΄μ λ μΈλΆμμλ Counter ν¨μ λ΄μ countμ μ κ·Όν μ μκΈ° λλ¬Έμ΄λ€.
μμ κ°μ΄ μμ±νλ€λ©΄ private ν ν¨κ³Όλ₯Ό λ³Ό μ μλ€.
μ¬κΈ°μ μ κΉ ππ»
λ§μ½μ Counter ν¨μμμ count λ³μλ κ°μ΄ 리ν΄νλ€λ©΄??
λ΄κ° μμν λ΅μ count λ³μμ μ κ·Όν μ μκΈ° λλ¬Έμ counter.count
λ2
κ° μΆλ ₯λ κ²μ΄λΌκ³ μκ°νμλ€.
κ·Έλ μ§λ§ κ²°κ³Όλ 0
μ΄ λμλ€.
μ΄μ λ?βοΈ
μ«μλ μμν
μ΄κΈ° λλ¬Έμ Counter ν¨μμμ κ°μ²΄ 리ν°λ΄μ λ°νν λ, count λ³μμ μμ ν λΆλ¦¬
λλ€. νμ§λ§ ν¨μλ μ°Έμ‘°ν
μ΄κΈ° λλ¬Έμ increaseλ printCountλ₯Ό counter κ°μ²΄μ λ©μλλ‘ μ€νν΄λ, κ²°κ΅ Counter ν¨μ λ΄λΆμ μ μν κ·Έ ν¨μλ€μ΄κΈ° λλ¬Έ
μ λ΄λΆ λ³μ(count)μ μ κ·Όν μ μμ΅λλ€.
κ·Έλμ λ§μ§λ§ μ½μ μΆλ ₯μ 0μ΄ λλ€λ κ²μ μ μ μμ΅λλ€.
2μ£Όλμ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ λν΄ λ°°μ μμλ λΆκ΅¬νκ³ μ€λ 곡λΆν μμλ€μ 보면μ κ³μ ν·κ°λ Έλ€. νμ€ν μμμ κ°μ΄ 보λκΉ ν 체κ°νλ€. λ¬Έμ ν΄μ€μ 보면μ κΆκΈνλ μ μ μ²μμΌλ‘ μ¬λ μ±λμ λ¬Όμ΄λ³΄μλλ° λ€λ€ μ½κ² μ΄ν΄ν μ μλλ‘ λ§μν΄μ£Όμ μ 빨리 μ΄ν΄ν μ μμλ€. κ°λπ₯°
μ€λμ κΈμ΄ 짧λ€μ!~ κ°λ μ΄λ° λ λ μμ΄μΌμ£
λ°λλ μ΄μ½νμ΄λ λ§μλ€.πππ
μ€λ κ°μ₯ ν«νλ μ§λ¬Έ ππ λ°λλ μ΄μ½νμ΄λ μΈμ λμ ¨λμ? π€£