Chapter1. 객체 지향
1.클로저 모듈 패턴에 대해 설명할 수 있다.
2.클래스와 인스턴스에 대해 설명할 수 있다.
3.클래스 문법을 이용할 수 있다.
Chapter2. Prototype
4.프로토타입이 무엇인지 설명할 수 있다.
1. 클로저는 외부함수에 접근할 수 있는 내부 함수를 말하며 보통은 지역변수가 선언된 함수 내부에 클로저를 넣어 그 함수에 접근하기 때문에 외부에서는 그 값에 접급할 수 없다는 장점이 있다.
클로저의 핵심은, 외부함수는 자신의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않고 계속 살아있다는 것으로 내부함수가 외부함수의 context에 접근할 수 있는데, 보통 우리가 알고 있는 함수 내부의 지역변수는 함수의 Life-Cycle에 의해서 역할을 다하면 내부에 정의 된 지역변수도 같이 사라지게 된다. 하지만 부모함수 내부에 내부함수가 존재하고 그 함수가 부모의 요소를 계속 참조하게 되면 부모함수가 자신의 역할을 완료하고 종료되더라도 자신의 요소를 참조하고 있는 내부함수 때문에 지역 변수가 사라지지 않으며, 내부함수가 그 요소에 대해 계속적으로 접근이 가능해진다. 즉, 이러한 매커니즘을 이용해 캡슐화된 모듈을 개발할 수 있다.
2.클래스는 반복되는 객체들을 일정한 틀로 만들어낼 수 있는데 그 객체들을 인스턴스라고 부른다.
3.클래스 문법은 기존의 제작과 크게 차이가 나는 것은 아니지만 사용의 편리함이 있다.
자료가 부족해 영상을 보고 학습한 내용이지만 위의 함수 선언식과 사용방법은 기존의 상속속등을 이용하는 객체의 사용법이었다면 아래의 클래스 선언은 최신식(ES6..나름?)의 방법이다.
function 기계(구멍){
this.q = 구멍;
this.w = 'snowball';
}
var nunu = new 기계('consume');
var garen = new 기계('strike');
class Hero{
constructor(구멍){
this.q = 구멍;
this.w = 'snowball';
}
}
4. 프로토타입(기계.prototype.name = 'kim')을 수정할 경우 근본적인 유전자?가 수정된다. 수정된 내용은 즉각적으로 반영되는 것이 아니라 사용하는 것에 선언이 되어있지 않은 경우 그 근본이 되는 상위로 거슬러 올라가게 되는데 그 과정에서 나오는 데이터가 없을 경우 최종 목적지가 프로토타입이 된다. 프로토타입은 console에 찍히지는 않기 때문에 데이터면에서도 절약이 된다. (하지만 중간에 다른 이름이 틀어박혀 있다면 그 자식부터는 그 이름이 나올 수 있기 때문에 주의해야 할 것 같다.)
오늘은 정말로 이해하기가 쉽지 않았다.
예시도 많이 부족했던 것 같고 사용하는 예시도 제공되지 않았다..
본인이 스스로 찾아보는 학습에 대해서 강조하는 것은 알지만... 어차피 유튜브로 제공되는 자료로 추가 학습을 해야 따라갈 수 있는 정도라면 예제정도는 두세개 만들어서 비교해 주는 편이 더 좋지 않았을까?
혼자서 끙끙대며 알아본 5~6시간이 무색하게 동기분들이 참고하라고 던져준 유튜브 강의 하나가 더 명확하게 이해할 수 있는 계기가 되었다..
동기사랑=나라사랑
'회고' 카테고리의 다른 글
| [JS/Node] 비동기 (0) | 2022.05.27 |
|---|---|
| [JavaScript] 객체 지향 프로그래밍-2 (0) | 2022.05.26 |
| [JavaScript] 고차 함수 (3) | 2022.05.24 |
| 프론트엔드 부트캠프(코드스테이츠) 1개월차 회고 (0) | 2022.05.23 |
| 복습(유효성검사, 나만의 아고라스테이츠만들기) (0) | 2022.05.22 |
