π
ν΄λ‘μ (Closure)λ?
December 23, 2022
ν¨μμ ν¨μκ° μ μΈλ μ΄νμ νκ²½μ μ‘°ν©μ΄λ€.
μ΄νμ λ²μ μ§μ (Lexical scoping)
function init() {
const name = 'Sanny'; // nameμ initμ μν΄ μμ±λ μ§μ λ³μμ΄λ€.
function displayName() { // displayName() μ λ΄λΆ ν¨μμ΄λ©°, ν΄λ‘μ λ€.
alert(name); // λΆλͺ¨ ν¨μμμ μ μΈλ λ³μλ₯Ό μ¬μ©νλ€.
}
displayName();
}
init();
- μ μ½λλ₯Ό μ€ννλ©΄
displayName()
Β ν¨μ λ΄μΒalert()
λ¬Έμ΄ λΆλͺ¨ ν¨μμμ μ μν λ³μΒname
μ κ°μ μ±κ³΅μ μΌλ‘ μΆλ ₯νλ€. - μ΄ μμλ₯Ό ν΅ν΄ ν¨μκ°
μ€μ²©λ μν©
μμ νμκ° μ΄λ»κ² λ³μλ₯Ό μ²λ¦¬νλμ§ μ μ μλ€. - μ΄λ μ΄νμ λ²μ μ§μ (Lexical Scoping)μ ν μμ΄λ€. μ¬κΈ°μ
Lexical
μ΄λ, μ΄νμ λ²μ μ§μ (Lexical Scoping) κ³Όμ μμ λ³μκ° μ΄λμμ μ¬μ© κ°λ₯νμ§ μκΈ° μν΄ κ·Έ λ³μκ° μμ€μ½λ λ΄ μ΄λμμ μ μΈλμλμ§ κ³ λ €νλ€λ κ²μ μλ―Ένλ€. - λ¨μ΄
Lexical
μ μ΄λ° μ¬μ€μ λνλΈλ€.μ€μ²©λ ν¨μ
λ μΈλΆ λ²μ(scope)μμ μ μΈν λ³μμλ μ κ·Όν μ μλ€.
ν΄λ‘μ (Closure)
- μλ°μ€ν¬λ¦½νΈλ ν¨μλ₯Ό 리ν΄νκ³ , 리ν΄νλ ν¨μκ° ν΄λ‘μ λ₯Ό νμ±νλ€.
- ν΄λ‘μ λ ν¨μμ ν¨μκ° μ μΈλ μ΄νμ νκ²½μ μ‘°ν©μ΄λ€. μ΄ νκ²½μ ν΄λ‘μ κ° μμ±λ μμ μ μ ν¨ λ²μ λ΄μ μλ λͺ¨λ μ§μ λ³μλ‘ κ΅¬μ±λλ€.
ν΄λ‘μ (Closure)
λ λ΄λΆν¨μκ° μΈλΆν¨μμ λ§₯λ½(context)μ μ κ·Όν μ μλ κ²μ λ§νλ€.