π IIFE(Immediately Invoked Function Expression)λ?
- μ¦μ μ€ν ν¨μ, ν¨μ μ μΈκ³Ό λμμ μ€νμν΄
- (function() {})(); μ ννλ₯Ό κ°μ§
( function() { ... } )();
ν¨μμ μΈμμ΄ μλκ³ ν¨μλ₯Ό μ€νμν€λ κ΄νΈ
ν¨μ ννμμμ
jsμκ² μλ €μ€
μ€ν 컨ν μ€νΈ λ΄μμ λͺ¨λ λ³μ, ν¨μλ±μ΄ μ μΈλλ―λ‘ λͺ¨λ λ°μ΄ν°λ IIFEμ λ‘컬μ€μ½ν μμλ§ μ μ₯λλ€.
μ΄λ μ μμ€μ½νλ₯Ό μ€μΌμν€μ§ μκ³ , μΈλΆμμ λ©λλ‘ IIFE λ΄λΆμ κ°μ μ κ·Όν μ μκΈ° λλ¬Έμ κ°μ μμ νκ² λ³΄κ΄ν μ μλ€.
var example1 = (function() {
function a() {
return 5;
}
return {
a : a // {νΈμΆν λ μ°λ μ΄λ¦ : μ€μ λ°μ΄ν°κ°}
}
})(); //μ¦μμ€νν¨μ
function a(){ //κ°μ μ΄λ¦μΌλ‘ λ€λ₯Έ ν¨μ μ μΈ, μμ function aκ° IIFEκ° μλμλ€λ©΄ κ°μ΄ νΌλλ μ μλ μν©
return 'wow';
}
//μ€ννλ©΄
> example1.a()
<< 5
> a()
<< wow
μ€νμν€κ³ μ νλ μ΅λͺ
ν¨μλ₯Ό example1
μ΄λΌλ λ³μμ λ΄μλλ€. (μ΄ κ°μ²΄λ { a:a }
λΌλ κ°μ 리ν΄ν¨)
example1.a()
λ‘ example1μ λ΄κΈ΄ aκ°μ μ κ·Όν μ μκ³ , λ°μ μλ aμ ν·κ°λ¦¬μ§ μκ³ μ¬μ©ν μ μλ€.
π€ IIFEλ μ μ°λλ°?
- ν¨μλ₯Ό μ¦μ μ€νμν¬ λ
- ν¨μλ₯Ό λ± νλ²λ§ μ€νμν¬ λ
- μμ μμμ²λΌ λ³μμ μ¬μ© λ²μλ₯Ό μ ννκΈ° μν΄ (letκ³Ό constκ° μλ μμ μλ νΉν μμ€νμλ€!)
πμ°Έκ³ (κ°μ¬ν©λλ€!)
'πκ³΅λΆ > JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] μ΄λ²€νΈ λ²λΈλ§(Event Bubbling) + e.stopPropagation() (0) | 2021.09.17 |
---|---|
[JavaScript] μ΄λ²€νΈ νλ‘μ°(Event Flow) (0) | 2021.09.16 |
[JavaScript] μ΄λ²€νΈ 루ν (0) | 2021.08.14 |
[JavaScript] Arrow function vs Function (0) | 2021.07.28 |
[JavaScript] JSμ Implicit Return (μμμ λ°ν) (0) | 2021.05.23 |
λκΈ