νΈμ΄μ€ν , ν΄λ‘μ , this λ°μΈλ© λ±μ μλ €λ©΄ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μ μμμΌ νλ€.
μ€ν 컨ν μ€νΈ (Execution Context)
μλ°μ€ν¬λ¦½νΈ μ½λκ° μ€νλ λ μμ±λλ μ€ν μ 보μ νκ²½μ΄λ€. μ΄λ€ μ½λκ° μ€νλ μ§, λ³μμ ν¨μκ° μ΄λ»κ² μ€νλ μ§λ₯Ό κ΄λ¦¬νλ€.
ꡬμ±μμ
1. λ μ컬 νκ²½ (Lexical Environment)
- λ³μλ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ©°, μ€μ½ν 체μΈμ κ΄λ¦¬νλ€.
- νμ¬ μ€ν μ€μΈ μ½λ λΈλ‘(ν¨μ, μ μ, λΈλ‘)μ μ€μ½νλ₯Ό λνλΈλ€.
2. λ³μ νκ²½ (Variable Environment)
- λ μ컬 νκ²½κ³Ό λΉμ·νμ§λ§, var ν€μλλ‘ μ μΈλ λ³μλ§ κ΄λ¦¬νλ€.
- ν¨μ μ€ν μ μ΄κΈ° μνλ₯Ό 보κ΄νλ€.
3. this λ°μΈλ© (This Binding)
- νμ¬ μ€ν μ€μΈ μ½λμμμ this κ°μ κ°λ¦¬ν¨λ€.
λ μ컬 νκ²½ (Lexical Environment)
μ€ν 컨ν μ€νΈ λ΄λΆμ κ΅¬μ± μμ μ€ νλλ‘, λ³μμ ν¨μ μ μΈμ κΈ°λ‘νκ³ κ΄λ¦¬νλ€.
νμ¬ μ½λ λΈλ‘μμ μ¬μ©ν μ€μ½νμ μλ°μ(λ³μ, ν¨μ)λ₯Ό μ μ₯νλ€.
μ¦ λ μ컬 νκ²½μ μ€μ½νλ₯Ό ꡬλΆνμ¬ μλ³μλ₯Ό λ±λ‘νκ³ κ΄λ¦¬νλ μ μ₯μ μν μ νλ λ μ컬 μ€μ½νμ μ€μ²΄μ΄λ€.
ꡬμ±μμ
1. νκ²½ λ μ½λ (Environment Record)
νμ¬ μ€μ½ν λ΄μμ μ μΈλ λ³μμ ν¨μμ μ 보λ₯Ό μ μ₯νλ κ°μ²΄μ΄λ€.
2. μΈλΆ νκ²½ μ°Έμ‘° (Outer Environment Reference)
μμ μ€μ½νμ λν μ°Έμ‘°λ₯Ό μ μ₯νμ¬, μ€μ½ν 체μΈμ ꡬννλ€.
μμ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
|
function outer() {
let x = 10;
function inner() {
let y = 20;
console.log(x + y);
}
inner();
}
outer();
|
cs |
μ€ν 컨ν μ€νΈ
outer ν¨μ νΈμΆμ μ€ν 컨ν μ€νΈ μμ±. → λ μ컬 νκ²½μ x μ μ₯.
inner ν¨μ νΈμΆ μ μλ‘μ΄ μ€ν 컨ν μ€νΈ μμ±. → λ μ컬 νκ²½μ y μ μ₯, μΈλΆ νκ²½ μ°Έμ‘°λ‘ outerμ λ μ컬 νκ²½ μ°Έμ‘°.
λ μ컬 νκ²½
outerμ λ μ컬 νκ²½ - xμ outer μ€μ½ν μ°Έμ‘°.
innerμ λ μ컬 νκ²½ - yμ inner μ€μ½ν μ°Έμ‘°.
μμ½ μ°¨μ΄μ
νΉμ§ | μ€ν 컨ν μ€νΈ | λ μ컬 νκ²½ |
μν | μ€ν μ€μΈ μ½λμ μ€ν μ 보λ₯Ό κ΄λ¦¬ | μ€μ½νμ λ³μ κ΄λ¦¬λ₯Ό μν μ μ₯μ |
μμΉ | λ°νμμ μμ±λμ΄ μλ°μ€ν¬λ¦½νΈμ μ€ν κ³Όμ μ μ μ΄ | μ€ν 컨ν μ€νΈ λ΄λΆμ κ΅¬μ± μμ |
ν¬ν¨ λ΄μ© | λ μ컬 νκ²½, λ³μ νκ²½, this λ°μΈλ© | νκ²½ λ μ½λμ μΈλΆ νκ²½ μ°Έμ‘° |
μμ ν¬ν¨ μ¬λΆ | thisμ varμ μ΄κΈ° μν ν¬ν¨ | let, const, ν¨μ μ μΈ λ± νμ¬ μ€μ½νμμ μ ν¨ν μλ³μ |
μμ± μμ | ν¨μ νΈμΆ, μ μ μ½λ μ€ν, eval μ€ν μ | ν¨μ νΈμΆ, λΈλ‘ μ€ν λ± μ€μ½νκ° μμ±λ λ |
'JavaScript Programming' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JavaScript μΌλ° ν¨μμ νμ΄ν ν¨μμ μ°¨μ΄μ λ¬Έλ² (0) | 2024.12.20 |
---|---|
JavaScript - if λ¬Έ Truthy μ Falsy νκ° λ°©μ (1) | 2024.12.18 |
JavaScriptμμ 1 < x < 3μ΄ νμ μ°ΈμΈ μ΄μ - Number λ΄μ₯ ν¨μ (0) | 2024.12.17 |
λκΈ