[JavaScript] Scope

O2o2✨·2023λ…„ 4μ›” 8일
0

JavaScript

λͺ©λ‘ 보기
1/3

🍏 <λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive>λ₯Ό λ°”νƒ•μœΌλ‘œ μš”μ•½ μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€.

1. μ •μ˜


  • μŠ€μ½”ν”„(Scope): μ‹λ³„μžκ°€ μœ νš¨ν•œ λ²”μœ„
  • μ‹λ³„μž: λ³€μˆ˜ 이름, ν•¨μˆ˜ 이름, 클래슀 이름 λ“±
  • λͺ¨λ“  μ‹λ³„μžλŠ” μ„ μ–Έλœ μœ„μΉ˜μ— 따라 μ°Έμ‘° κ°€λŠ₯ν•œ 유효 λ²”μœ„κ°€ κ²°μ •λœλ‹€.
  • μ‹λ³„μž κ²°μ •: μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μ–΄λ–€ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  것인지 κ²°μ •ν•˜λŠ” 것

2. μ’…λ₯˜


  • μŠ€μ½”ν”„μ˜ μ’…λ₯˜: μ „μ—­(global)κ³Ό 지역(local)둜 ꡬ뢄
  • μ „μ—­ μŠ€μ½”ν”„: μ½”λ“œμ˜ κ°€μž₯ λ°”κΉ₯ μ˜μ—­ λ²”μœ„. μ „μ—­ μŠ€μ½”ν”„λ₯Ό κ°–λŠ” μ „μ—­ λ³€μˆ˜λŠ” μ–΄λ””μ„œλ“  μ°Έμ‘°ν•  수 μžˆλ‹€.
  • 지역 μŠ€μ½”ν”„: ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€ λ²”μœ„. 지역 μŠ€μ½”ν”„λ₯Ό κ°–λŠ” 지역 λ³€μˆ˜λŠ” μžμ‹ μ˜ 지역 μŠ€μ½”ν”„μ™€ ν•˜μœ„ 지역 μŠ€μ½”ν”„μ—μ„œ μœ νš¨ν•˜λ‹€.

3. μŠ€μ½”ν”„ 체인


  • μŠ€μ½”ν”„λŠ” ν•¨μˆ˜μ˜ 쀑첩에 μ˜ν•΄ 계측적 ꡬ쑰λ₯Ό κ°–λŠ”λ‹€.
  • μŠ€μ½”ν”„ 체인: μŠ€μ½”ν”„κ°€ κ³„μΈ΅μ μœΌλ‘œ μ—°κ²°λœ 것
function outer() {
  function inner() {
  }
}
  • μ‹λ³„μž 결정은 ν˜„μž¬ μŠ€μ½”ν”„μ—μ„œλΆ€ν„° μ‹œμž‘ν—€ μƒμœ„ μŠ€μ½”ν”„λ‘œ κ²€μƒ‰ν•˜λ©° 이루어진닀.
    ν˜„μž¬ μŠ€μ½”ν”„μ—μ„œ 찾지 λͺ»ν•˜λ©΄ μƒμœ„ μŠ€μ½”ν”„λ‘œ μ΄λ™ν•˜μ—¬ κ²€μƒ‰ν•œλ‹€.

4. λ ‰μ‹œμ»¬ μŠ€μ½”ν”„(정적 μŠ€μ½”ν”„)


  • 동적 μŠ€μ½”ν”„: ν•¨μˆ˜λ₯Ό μ–΄λ””μ„œ ν˜ΈμΆœν–ˆλŠ”μ§€μ— 따라 ν•¨μˆ˜μ˜ μƒμœ„ μŠ€μ½”ν”„λ₯Ό κ²°μ •ν•œλ‹€.
  • 정적 μŠ€μ½”ν”„: ν•¨μˆ˜λ₯Ό μ–΄λ””μ—μ„œ μ •μ˜ν–ˆλŠ”μ§€μ— 따라 ν•¨μˆ˜μ˜ μƒμœ„ μŠ€μ½”ν”„λ₯Ό κ²°μ •ν•œλ‹€.
    ν•¨μˆ˜λ₯Ό μ–΄λ””μ—μ„œ ν˜ΈμΆœν•˜λ˜ μŠ€μ½”ν”„λŠ” λ³€κ²½λ˜μ§€ μ•ŠλŠ”λ‹€.
profile
λ¦¬μ•‘νŠΈ ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžμž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€