Skip to content

Latest commit

Β 

History

History
40 lines (29 loc) Β· 1.66 KB

File metadata and controls

40 lines (29 loc) Β· 1.66 KB

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ (Execution Context)

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλŠ” μ‹€ν–‰ν•  μ½”λ“œμ— μ œκ³΅ν•  ν™˜κ²½ 정보듀을 λͺ¨μ•„놓은 객체이닀. λ™μΌν•œ ν™˜κ²½μ— μžˆλŠ” μ½”λ“œλ“€μ„ μ‹€ν–‰ν•  λ•Œ ν•„μš”ν•œ ν™˜κ²½ 정보듀을 λͺ¨μ•„ μ»¨ν…μŠ€νŠΈλ₯Ό κ΅¬μ„±ν•˜κ³  이λ₯Ό 콜 μŠ€νƒμ— μŒ“μ•„μ˜¬λ Έλ‹€κ°€, κ°€μž₯ μœ„μ— μŒ“μ—¬μžˆλŠ” μ»¨ν…μŠ€νŠΈμ™€ κ΄€λ ¨ μžˆλŠ” μ½”λ“œλ“€μ„ μ‹€ν–‰ν•˜λŠ” μ‹μœΌλ‘œ 전체 μ½”λ“œμ˜ ν™˜κ²½κ³Ό μˆœμ„œλ₯Ό 보μž₯ν•œλ‹€.


μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ λ™μž‘

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ–΄λ–€ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ ν™œμ„±ν™”λ˜λŠ” μ‹œμ μ—

  • μ„ μ–Έλœ λ³€μˆ˜λ₯Ό μœ„λ‘œ λŒμ–΄μ˜¬λ¦¬κ³ (ν˜Έμ΄μŠ€νŒ…)
  • μ™ΈλΆ€ ν™˜κ²½ 정보λ₯Ό κ΅¬μ„±ν•˜κ³ 
  • this 값을 μ„€μ •ν•˜λŠ”

λ“±μ˜ λ™μž‘μ„ μˆ˜ν–‰ν•œλ‹€.


μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ ꡬ성 방법

  • μ „μ—­ 곡간
  • eval() ν•¨μˆ˜
  • ν•¨μˆ˜
  • 블둝 {} -> ES6μ—μ„œ 좔가됨

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ 객체

μ–΄λ–€ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ ν™œμ„±ν™”λ  λ•Œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 ν•΄λ‹Ή μ»¨ν…μŠ€νŠΈμ— κ΄€λ ¨λœ μ½”λ“œλ“€μ„ μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ ν™˜κ²½ 정보듀을 μˆ˜μ§‘ν•΄ 여기에 μ €μž₯ν•œλ‹€. (이 κ°μ²΄λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 ν™œμš©ν•  λͺ©μ μœΌλ‘œ 생성할 뿐, κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό 톡해 확인할 순 μ—†λ‹€.)


μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ κ΅¬μ„±μš”μ†Œ

  1. VariableEnvironment
    • ν˜„μž¬ μ»¨ν…μŠ€νŠΈ λ‚΄μ˜ μ‹λ³„μžλ“€μ— λŒ€ν•œ 정보 + μ™ΈλΆ€ ν™˜κ²½ 정보
    • μ„ μ–Έ μ‹œμ μ˜ LexicalEnvironment의 μŠ€λƒ…μƒ·μœΌλ‘œ, λ³€κ²½ 사항은 λ°˜μ˜λ˜μ§€ μ•ŠμŒ
  2. LexicalEnvironment : μ²˜μŒμ—λŠ” VariableEnvironment와 κ°™μ§€λ§Œ, λ³€κ²½ 사항이 μ‹€μ‹œκ°„μœΌλ‘œ 반영됨
  3. ThisBinding : this μ‹λ³„μžκ°€ 바라봐야 ν•  λŒ€μƒ 객체

μ°Έκ³ 

  • μ½”μ–΄ μžλ°”μŠ€ν¬λ¦½νŠΈ (μ±…)