π ν΄λ‘μ (Closure)λ?
μΌλ°μ μΈ ν¨μμ κ²½μ° ν¨μ νΈμΆμ μν΄ ν¨μ λ΄λΆμ μ€νꡬ문μ λͺ¨λ μ€ννκ² λλ©΄ ν¨μ λ΄λΆμμ λ§λ μ§μ λ³μκ° μλμΌλ‘ μ¬λΌμ§μ§λ§, μ΄λ€ κ²½μ°μλ μ¬λΌμ§μ§ μκ³ λ¨λ κ²½μ°κ° μλλ° μ΄λ¬ν νμμ ν΄λ‘μ λΌκ³ νλ€.
ν΄λ‘μ λ μλ° μ€ν¬λ¦½νΈμμ μ€μ²© ν¨μμ λΉλκΈ° λ°©μμ μ¬μ©νμ¬ κ°λ₯νλ°, νΈμΆλ ν¨μ λ΄μμ μΈλΆλ‘ μ΄λνλ λ³μκ° μμΌλ©΄ ν΄λ‘μ ν¨μκ° λμνλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// ν¨μ μ μΈ
function createCount(){
var count = 0; // λ³μ μ μΈ // 3 β
λ³μκ° μ¬λΌμ§μ§ μκ³ λ¨μ π§βοΈβ
// μ€μ²© ν¨μ // 4 λ€μ μ΄μλ¨
function addCount(){
count++; // μ²λ¦¬
return count; // μΆλ ₯ // 1 countλ₯Ό λ°ν
} // 2 μ’
λ£
return addCount;
}
// ν¨μ
var counter = createCount(); // 2 countλ₯Ό λ겨 λ°μ
|
cs |
π ν΄λ‘μ ν¨μλ₯Ό μ¬μ©νλ μ΄μ
- ν¨μκ° μμ±λμ λμ μμ μ μνλ₯Ό κΈ°μ΅νκ³ λ³κ²½λ μ΅μ μνλ₯Ό μ μ§ν μ μλ€.
- μ μ λ³μμ μ¬μ©μ μ΅μννλ€.
- μ°κ΄ μλ λ³μμ κΈ°λ₯μ νλμ ν¨μλ‘ λ¬Άμ΄ λ 립μ μΌλ‘ μ¬λ¬κ°λ₯Ό μ€ν μν¬ μ μλ€.
- ν¨μ λ΄λΆμ λ°μ΄ν°κ° λ§λ€μ΄μ§κΈ° λλ¬Έμ ν¨μ μΈλΆμμ μμ ν μ μλ 보νΈλ λ°μ΄ν°λ₯Ό λ§λ€ μ μλ€. (μ 보λ₯Ό μλν μ μλ€.)
π μ°Έκ³ μλ£
π‘ κ°μ΄ 보면 μ’μ Post
'π > γ΄ JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] AJAX / XMLHttpRequest, axios, fecth (0) | 2021.03.07 |
---|---|
[JavaScript] thisλ? / call, apply, bind μ°¨μ΄μ (0) | 2021.02.01 |
[JavaScript] νΈμ΄μ€ν (Hoisting) μ΄λ? (0) | 2021.02.01 |
[JavaScript] μ€ν 컨ν μ€νΈ(Execution Context)λ? (0) | 2021.01.31 |
[JavaScript / λΉλκΈ° μ²λ¦¬] AJAX / Callback, Promise, async, await (0) | 2021.01.31 |