Deep Dive 책은 19장 프로토타입이 하이라이트였어...
서브 클래스의 super 호출 (슈퍼클래스 호출)이 중요한 이유
- new 서브클래스() 호출
- 서브 클래스 constructor 에서 super()
- 슈퍼 클래스 constructor 에서 인스턴스 생성 후, 서브에 반환
- : 수퍼클래스가 인스턴스를 생성했으나, "new와 함께 서브클래스가 호출"했으므로, new. target은 서브클래스. 즉, 수퍼클래스가 생성한(생성해서 반환한) 인스턴스는 서브클래스가 생성한 것으로 처리된다.
- 결과적으로
- 인스턴스의 프로토타입은 슈퍼클? 서브클? --> 서브클래스.prototype
- 서브클래스에서 인스턴스를 this 바인딩하여 그대로 사용.
25.8.3 동적 상속 (클래스 상속 or 생성자 함수 상속)
동적 상속 코드
function Base1() {}
class Base2 {}
let condition = true;
// 조건에 따라 동적으로 상속 대상을 결정하는 서브클래스
class Derived extends (condition ? Base1 : Base2) {}
const derived = new Derived();
console.log(derived); // Derived {}
console.log(derived instanceof Base1); // true
console.log(derived instanceof Base2); // false
전형적인 상속코드
// 수퍼클래스
class Base {
constructor(a, b) { // ④
this.a = a;
this.b = b;
}
}
// 서브클래스
class Derived extends Base {
constructor(a, b, c) { // ②
super(a, b); // ③
this.c = c;
}
}
const derived = new Derived(1, 2, 3); // ①
console.log(derived); // Derived {a: 1, b: 2, c: 3}
사족
- 가장 얇은 책으로 기초 문법
- 온라인 강의
- 심화는 웹사이트 검색 또는 전자 도서관
- 두꺼운 책은 아무리 좋다해도, 안볼 거니까 금지. -_-
음... 초보자 입장에서 딥다이브 모던 자바스크립트의 단점이 확연히 느껴진다.
꾸역 꾸역 이해하면서 봤지만, 노력에 비해 이걸 굳이 이렇게 봐야하나 싶은 것이 많았다.
모던 자바스크립트 핵심 가이드 | Deep Dive |
이건 이렇다. 예제를 보고, 실습하자. 퀴즈도 풀어보자. |
이건 이렇다고 할 수 있을까? ~~~~ 이래서, 미묘한 차이가 있다. 하지만 같다고 봐도 무방하다. .. 휴 빡침. class 속도가 너무 느려지다보니, 학습했던 개념이 희미해지면서, 점점 더 느려지고, 꾸역꾸역 보다보니 지엽적인 것만 보게되고, 갈수록 흥미가 떨어졌다. ㅠㅠ |
클래스는 문법적 설탕이다. 새로운 객체 지향 상속 모델을 도입하는 것은 아니다. | 자바스크립트에서 class 는 문법적 설탕인가? 설탕이라고 볼 수도 있다. .... 그런데, 결론은 단순한 문법적 설탕이라고 보기보다는 새로운 객체 생성 메커니즘으로 보는 것이 좀 더 합당하다.. ( 이런 식의 기술과 설명이 많다. ) 이 책은 자세하고 정확한 설명을 하기 위한 책인만큼, 말이 안늘어졌으면... 머 어쩌겠니 -_- |
기본 문법을 빠르게 공부하고, 실용적인 연습하다가, 이건 왜 이렇지? 할 때, 검색하면 바로 알 수 있는 것들인데 말이다.
그래서, 평점이 너무 높아서 입문단계에서 이 책을 봤던 것이 너무 후회된다. 아무리 좋은 책인들, 초등학생이 정석책 보는 꼴이니... 이 책은 초심자가 교과서 대신 학습 참고서를 보는 것 같았다
교훈
학습에 있어서 다시 한번 교훈을 얻은 계기가 됐다.
쉬운 책이여야 하고, 빨리 볼 수 있어야 집중도 잘 되고, 빠른 회독이 가능하다. 그게 가능한게 현재 내 수준에 맞는 책.
역시 어려운 주제의 책들은 가장 쉬운 교과서 같은 책을 빠르게, 반복하는 방법이 최고의 방법인 것 같다.
중간에 포기하는게 존심 상해서 끝까지 다 봤다. 이해하기 어려운게 아니라, 너무 지겨웠다. ㅠㅠㅠㅠ
초기에 일찍 바꿨으면 괜찮았는데. ㅠㅠ 어느 정도 익숙해진 다음, 필요에 의해 이 책을 봤더라면, 상당히 재밌게 봤을 책인 듯 하다. 좋다는 책 딱 한권만 회독하려다보니, 가장 평점 높은DeepDive 를 샀는데 실수였어... ㅠㅠㅠ
다음 부터 새로운 언어할 때는 가장 얇은 입문책, 그리고 온라인 수강으로 방법을 바꾸기로 맘 먹었다.
사실 대부분의 평점이 좋은 책들은 어렵고 두꺼운 책들이다. 항상 그런 것 같다. ^^
얇지만 서술이 간결한 책이 가장 좋은 것 같다. 두꺼운 책은 무조건 거부하기로 했다.
'자바스크립트 문법' 카테고리의 다른 글
자바스크립트 얕은 복사, 깊은 복사 (0) | 2024.06.18 |
---|---|
vscode: html 자동 완성 수정 (0) | 2022.11.06 |
26 ES6 함수의 추가 기능 code (0) | 2022.10.25 |
javascript 학습 중 (책과 강의 등) (0) | 2022.10.13 |
19 프로토타입 (0) | 2022.09.26 |
17 생성자 함수에 의한 객체 생성 (0) | 2022.09.26 |
16 프로퍼티 어트리뷰트 (조내 복잡타 ㅠ) (0) | 2022.09.18 |
13. 스코프 // 14. 전역 변수의 문제점 // 15. let, const와 블록 레벨 스코프 (0) | 2022.09.12 |
댓글