this
thisλ ν¨μ λ΄μμ νΈμΆ λ§₯λ½(context, κ°λ³μ μ΄λ€)μ μλ―Ένλ€. thisλ ν¨μ μμμλ§ μ¬μ©κ°λ₯νλ©° μ½μλ λ³μμ΄λ€.
ν¨μκ° μ΄λμ μμλμ΄ μλμ§κ° μ€μνλ€
ν¨μμμμ thisμ μλ―Έ
첫λ²μ§Έμμ
μ¬κΈ°μ this λ μλμ°λ€
λ©μλμ νΈμΆ
λλ²μ§Έμμ
o.func()μ thisλ oλ₯Ό κ°λ₯΄ν¨λ€.
μ μκ°μ²΄, μ μλ©μλλ windowκ° μλ΅λμ΄ μλ€. 첫λ²μ§Έ μμμ thisλλ©μλκ° μμλμ΄ μλ κ°μ²΄λ₯Ό κ°λ¦¬ν¨λ€. λλ²μ§Έ μμλ oμ μμμ΄κΈ° λλ¬Έμ oλ₯Ό κ°λ¦¬ν¨λ€.
κ·Έλμ ν¨μμ νΈμΆκ³Ό λ©μλμ νΈμΆμ λ€λ₯Έκ² μλ€. λλ€ μμλ κ°μ²΄λ₯Ό κ°λ¦¬ν€κ³ μλλ° μλ΅λμ΄ μλμ§ μλμ§μ μ°¨μ΄λ€.
μμ±μμ this
o1λ window.Func()κ° μλ΅λ κ²μ΄λ―λ‘ window λ€
o2λ newλ₯Ό λΆμ¬ Func();λ₯Ό μ€ννκΈ° λλ¬Έμ μλ°μ€ν¬λ¦½νΈλ λ΄λΆμ μΌλ‘ λΉμ¬μλ κ°μ²΄λ₯Ό λ§λ€κ³ λΉμ¬μλ κ°μ²΄κ° μμ±μ μμμ thisκ° λλ€.
μλ‘ μμ±λλ κ°μ²΄κ° μμ±μ μμμ thisκ° λλ€.
new Func(); κ° λ€ μ€νλ ν var o2μ λ΄κΈ΄λ€.
κ·Έλ κΈ° λλ¬Έμ Func()ν¨μμμ if (o2 === this) .. λΌκ³ λ°λ‘ μΈ μ μλ€. funcμμμ ν κ²½μ° μμ§ o2λΌλ κ°μ²΄μ λ΄κΈ°κΈ° μ μ μ€νλκΈ° λλ¬Έμ o2λ undefinedκ° λλ€.
κ°μ²΄μ λν μ΄κΈ°νκ° λλ ν, μ΄λ€ μλ³μμ λ΄κΈ°κΈ° μ μ κ·Έ κ°μ²΄λ₯Ό μ°Έκ³ ν μ μλ reference ??
νμ§λ§ μ΄λ°μμΌλ‘ νμ κ²½μ°μ 'o2 === this'; κ° return λλ€.
applyμ this
ν¨μλ κ°μ²΄λ€
μμ1 - sumμ΄λΌλ ν¨μκ°μ²΄ λ§λ€κΈ°
μμ2
newλ₯Ό ν΅ν΄μ Functionμ΄λΌλ μ΄λ¦μ μμ±μ ν¨μλ₯Ό λ§λ κ²μ΄λ€. 첫λ²μ§ΈμΈμ x, λλ²μ§ΈμΈμ 'y'λ νλΌλ―Έν°(λ§€κ°λ³μ)λ₯Ό μλ―Ένκ³ λ§μ§λ§ μΈμλ ν¨μμ λ³Έλ¬Έμ ν΄λΉλλ€.
μμ2μ²λΌ μμ±νλκ²μ λλ¨ν λΆνΈνλ€. νΉν μμ2μ λ§μ§λ§ μΈμμ²λΌ λλ¨ν κΈ΄λ΄μ©μ΄λ©΄ λλμ± λΆνΈν κ²μ΄λ€.
μμ1μ²λΌ μμ±νλ©΄ μλ°μ€ν¬λ¦½νΈ ν΄μκΈ°κ° ν¨μ κ°μ²΄λ‘ λ§λ€μ΄ μ£Όλ κ²μ΄λ€. ->ν¨μ 리ν°λ΄(Literal).
리ν°λ΄(Literal)
new Object λ new Arrayλ‘ λͺ μμ μΌλ‘ λ§λ€ μ μμ§λ§ 리ν°λ΄ λ°©μμ΄λΌκ³ νΈλ¦¬νκ² λ§λ€ μ μκ²νλ€.
funcλ κ°μ²΄μ΄κΈ° λλ¬Έμ νλ‘νΌν°μ λ©μλλ₯Ό κ°μ§ μ μλ€. applyμ 첫λ²μ§Έ μΈμλ‘ ν¨μ νΈμΆ 컨ν μ€νΈ(context,λ§₯λ½,κ°λ³μ μ΄λ€.)λ₯Ό λμ νλ€.
μ ν΅μ μΈ κ°μ²΄μ§ν₯μμ λ©μλλΌλ κ²μ κ°μ²΄μ κ°νκ² μμλμ΄ μλ€. νμ§λ§ μλ°μ€ν¬λ¦½νΈλ μ μ°νλ€.
applyλ₯Ό μ΄μ©ν΄ νΈμΆ νλ ν¨μ func()λ pμ λ©μλλ λκ³ oμ λ©μλλ λλ€. κ°μ²΄μ ν¨μλ λ§€μ° λλ±νλ€. μλλ©΄ ν¨μλ κ°μ²΄μ΄κΈ° λλ¬Έμ΄λ€. ν¨μλ₯Ό μ΄λ»κ² νΈμΆνλ
κ° ν¬μΈνΈλ€. μ΄λ»κ² νΈμΆνλμ λ°λΌ μ΄λ€ κ°μ²΄μ μ’
μλμλμ§κ° λ¬λΌμ§λ€.
thisλ λ³ν무μνλ€. ν¨μκ° μ΄λμ μμλμ΄ μλμ§κ° μ€μνλ€. μλ°μ€ν¬λ¦½νΈλ μ μ°νλ€.
Last updated
Was this helpful?