Skip to content

Commit 5df4233

Browse files
committed
chapter 24, chapter 25 오타 수정 및 내용 추가
1 parent bb3f0da commit 5df4233

2 files changed

Lines changed: 17 additions & 7 deletions

File tree

book/이용우/chapter_24.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,17 @@
77
MDN에서는 클로저에 대해 아래와 같이 정의내린다.
88
> 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다.
99
10+
11+
<font color='tomato'>렉시컬 스코프 = 정적 스코프</font>
12+
13+
<br>
14+
15+
16+
17+
1018
<br>
1119

12-
여기서 가지고 가야 할 핵심 키워드는 <font color='orange'>"함수가 선언된 렉시컬 환경"</font>이다.
20+
핵심 키워드는 <font color='orange'>"함수가 선언된 렉시컬 환경"</font>이다.
1321

1422
``` js
1523
const x = 1;
@@ -73,7 +81,7 @@ bar();
7381
"실행 컨텍스트"에서 확인한 내용과 같이,
7482
스코프의 실체는 실행 컨텍스트의 렉시컬 환경이다.
7583

76-
<font color'orange'>이 렉시컬 환경은 "외부 렉시컬 환경에 대한 참조"를 통해 상위 렉시컬 환경과 연결된다.</font>
84+
<font color='orange'>이 렉시컬 환경은 "외부 렉시컬 환경에 대한 참조"를 통해 상위 렉시컬 환경과 연결된다.</font>
7785
이것이 스코프 체인이다.
7886

7987
<br>
@@ -126,7 +134,7 @@ function outer() {
126134

127135
// outer 함수를 호출하면 중첩 함수 inner를 반환한다.
128136
// 그리고 outer 함수의 실행 컨텍스트는 실행 컨텍스트 스택에서 pop되어 제거된다.
129-
coust innerFunc = outer();
137+
const innerFunc = outer();
130138
innerFunc(); // 10
131139
```
132140

@@ -137,7 +145,7 @@ innerFunc(); // 10
137145
138146
이때 `outer` 함수의 지역 변수 `x`와 변수 10을 저장하고 있던 `outer` 함수의 실행 컨텍스트가 제거되었으므로 `outer` 함수의 지역 변수 `x` 또한 생명 주기를 마감한다.
139147

140-
따라서 `outer` 함수의 지경 변수 `x`는 더이상 유효하지 않아 보인다.
148+
따라서 `outer` 함수의 지역 변수 `x`는 더이상 유효하지 않아 보인다.
141149

142150
<br>
143151

@@ -190,7 +198,7 @@ console.log(increase()); // 3
190198
따라서 카운트 상태(num 변수의 값)를 안전하게 변경하고 유지하기 위해서는
191199
`increase` 함수만이 `num` 변수를 참조하고 변경할 수 있게 하는 것이 바람직하다.
192200

193-
이를 위해 변수 `num``increase` 함수의 지역 변수로 바꾸어 의도치 않은 상태 변수를 방지해해보도록 하자.
201+
이를 위해 변수 `num``increase` 함수의 지역 변수로 바꾸어 의도치 않은 상태 변경을 방지해보도록 하자.
194202

195203
``` js
196204
const increase = function () {
@@ -313,7 +321,7 @@ console.log(decreaser()); // -2
313321

314322
<br><br>
315323

316-
### 캡슐화와 정보 은닉
324+
### 캡슐화와 정보 은닉 (얘가 핵심)
317325
대부분의 객체 지향 프로그래밍 언어는 클래스를 정의하고 그 클래스를 구성하는 맴버에 대해
318326
`public`, `private`, `protected` 등의 접근 제한자를 사용하여 공개 범위를 제한할 수 있다.
319327

book/이용우/chapter_25.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class Person {
112112
// 인스턴스 생성
113113
const me = new Person('Lee');
114114

115-
// 인스턴스의 프로퍼티 차몾
115+
// 인스턴스의 프로퍼티 참조
116116
console.log(me.name); // Lee
117117

118118
// 프로토타입 메소드 호출
@@ -122,6 +122,8 @@ me.sayHi(); // Hi! My name is Lee
122122
Person.sayHello(); // Hello!
123123
```
124124

125+
인스턴스를 생성하지 않고 사용할 수 있음
126+
125127
<br><br>
126128

127129
### 클래스 호이스팅

0 commit comments

Comments
 (0)