π 18.1 μΌκΈ κ°μ²΄
<μΌκΈ κ°μ²΄ 쑰건>
1. 무λͺ μ 리ν°λ΄λ‘ μμ±ν μ μλ€. μ¦, λ°νμμ μμ±μ΄ κ°λ₯νλ€.
2. λ³μλ μλ£κ΅¬μ‘°(κ°μ²΄, λ°°μ΄ λ±)μ μ μ₯ν μ μλ€.
3. ν¨μμ 맀κ°λ³μμ μ λ¬ν μ μλ€.
4. ν¨μμ λ°νκ°μΌλ‘ μ¬μ©ν μ μλ€.
JS μ ν¨μλ μ΄ λͺ¨λ 쑰건μ λ§μ‘±νλ―λ‘ μΌκΈ κ°μ²΄λ€.
ν¨μκ° μΌκΈ κ°μ²΄ -> ν¨μμ κ°μ²΄λ₯Ό λμΌνκ² μ¬μ©ν μ μλ€λ μλ―Έ.
ν¨μλ₯Ό κ°μΌλ‘ λμΌνκ² μ·¨κΈν μλ μλ€.
-> ν¨μλ κ°μ μ¬μ©ν μ μλ κ³³μ΄λΌλ©΄ μ΄λλ 리ν°λ΄λ‘ μ μν μ μμΌλ©°,
-> λ°νμμ ν¨μ κ°μ²΄λ‘ νκ°λλ€.
μΌκΈκ°μ²΄ ν¨μμ κ°μ₯ ν° νΉμ§
: μΌλ° κ°μ²΄μ κ°μ΄ ν¨μμ 맀κ°λ³μμ μ λ¬ν μ μμΌλ©°, ν¨μμ λ°νκ°μΌλ‘λ μ¬μ©ν μ μλ€λ κ².
π18.2 ν¨μ κ°μ²΄μ νλ‘νΌν°
ν¨μλ μΌλ° κ°μ²΄μ λ€λ₯΄κ², ν¨μ κ³ μ μ νλ‘νΌν°λ₯Ό μμ νλ€.
ν¨μμ νλ‘νΌν° : arguments, caller, length, name, prototype
__proto__ : μλ μ κ·Όμ νλ‘νΌν°μ. -> Object.prototype κ°μ²΄μ νλ‘νΌν°λ₯Ό μμλ°λ κ² => λͺ¨λ κ°μ²΄κ° μ¬μ©ν μ μλ€.
18.1.1 arguments νλ‘νΌν°
arguments νλ‘νΌν°μ κ° : arguments κ°μ²΄.
:: ν¨μ νΈμΆ μ μ λ¬ λ μΈμλ€μ μ 보λ₯Ό λ΄κ³ μλ, μν κ°λ₯ν μ μ¬ λ°°μ΄ κ°μ²΄. => ν¨μ λ΄λΆμμ μ§μ λ³μμ²λΌ μ¬μ©λλ€. μΈλΆμμλ μ°Έμ‘°ν μ μλ€.
μ΄κ³Όλ μΈμκ° κ·Έλ₯ λ²λ €μ§λ κ²μ΄ μλλΌ,
λͺ¨λ μΈμλ μ묡μ μΌλ‘ arguments κ°μ²΄μ νλ‘νΌν°λ‘ 보κ΄λ¨.
π arguments κ°μ²΄μ Symbol νλ‘νΌν°
- arguments κ°μ²΄λ₯Ό μν κ°λ₯ν μλ£κ΅¬μ‘°μΈ μ΄ν°λ¬λΈλ‘ λ§λ€κΈ° μν νλ‘νΌν°.
arguments κ°μ²΄μ νμ©
ν¨μ νΈμΆ μ μΈμ κ°μλ₯Ό νμΈνμ§ μλ μλ°μ€ν¬λ¦½νΈ νΉμ± μμ
-> μΈμ κ°μλ₯Ό νμΈνκ³ , μ΄μ λ°λ₯Έ ν¨μ λμμ μ μν λ μ¬μ©
=> 맀κ°λ³μ κ°μλ₯Ό νμ ν μ μλ κ°λ³ μΈμ ν¨μλ₯Ό ꡬνν λ μ μ©ν¨.
μ€μ λ°°μ΄μ΄ μλλΌ μ μ¬ λ°°μ΄ κ°μ²΄μ.
π μ μ¬ λ°°μ΄ κ°μ²΄
- length νλ‘νΌν°λ₯Ό κ°μ§ κ°μ²΄λ‘ for λ¬ΈμΌλ‘ μνν μ μλ κ°μ²΄
18.2.2 caller νλ‘νΌν°
λΉνμ€ νλ‘νΌν°μ.
18.2.3 length νλ‘νΌν°
ν¨μλ₯Ό μ μν λ μ μΈν 맀κ°λ³μμ κ°μλ₯Ό κ°λ¦¬ν΄.
argements μ length : μΈμμ κ°μ
ν¨μ κ°μ²΄μ length : 맀κ°λ³μμ κ°μ
18.2.4 name νλ‘νΌν°
ν¨μμ μ΄λ¦μ λνλ.
ES5 : λΉ λ¬Έμμ΄
ES6 : ν¨μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μλ³μλ₯Ό κ°μΌλ‘ κ°μ§.
18.2.5 __proto__ νλ‘νΌν°
λͺ¨λ κ°μ²΄λ [[prototype]] μ΄λ λ΄λΆ μ¬λ‘―μ κ°μ§κ³ , μλ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μμμ ꡬννλ νλ‘ν νμ κ°μ²΄λ₯Ό κ°λ¦¬ν΄.
λ΄λΆ μ¬λ‘―μ΄ κ°λ¦¬ν€λ νλ‘ν νμ κ°μ²΄μ μ κ·ΌνκΈ° μν΄ μ¬μ©νλ μ κ·Όμ νλ‘νΌν°
π hasOwnProperty
- μΈμλ‘ μ λ¬ λ°μ νλ‘νΌν° ν€ === κ°μ²΄ κ³ μ μ νλ‘νΌν° ν€ ? true : false (μμλ°μ νλ‘ν νμ μ νλ‘νΌν° ν€μΈ κ²½μ°)
18.2.6 prototype νλ‘νΌν°
constructor λ§μ΄ μμ νλ νλ‘νΌν°.
'λ μ λͺ©λ‘ > λͺ¨λ₯λ€ Modern JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ₯λ€] 19μ₯ (2) νλ‘ν νμ (0) | 2023.05.13 |
---|---|
[λͺ¨λ₯λ€] λ²μΈ ) μ°λ¦¬λ μ νλ‘ν νμ μ λν΄μ μμμΌν κΉ? (0) | 2023.05.10 |
[λͺ¨λ₯λ€] 17μ₯ μμ±μ ν¨μμ μν κ°μ²΄ μμ± (0) | 2023.05.09 |
[λͺ¨λ₯λ€] 16μ₯ νλ‘νΌν° μ΄νΈλ¦¬λ·°νΈ (0) | 2023.05.08 |
[λͺ¨λ₯λ€] 15μ₯ let, const ν€μλμ λΈλ‘ λ 벨 μ€μ½ν (0) | 2023.05.08 |