자바스크립트 문법

25장 클래스 (10/7)

자무카 2022. 9. 30.

Deep Dive 책은 19장 프로토타입이 하이라이트였어...

서브 클래스의 super 호출 (슈퍼클래스 호출)이 중요한 이유

  1. new 서브클래스() 호출
  2. 서브 클래스 constructor 에서 super()
  3. 슈퍼 클래스 constructor 에서 인스턴스 생성 후, 서브에 반환
  4. : 수퍼클래스가 인스턴스를 생성했으나, "new와 함께 서브클래스가 호출"했으므로, new. target은 서브클래스. 즉, 수퍼클래스가 생성한(생성해서 반환한) 인스턴스는 서브클래스가 생성한 것으로 처리된다.
  5. 결과적으로
    • 인스턴스의 프로토타입은 슈퍼클? 서브클? --> 서브클래스.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 를 샀는데 실수였어... ㅠㅠㅠ

다음 부터 새로운 언어할 때는 가장 얇은 입문책, 그리고 온라인 수강으로 방법을 바꾸기로 맘 먹었다.

사실 대부분의 평점이 좋은 책들은 어렵고 두꺼운 책들이다. 항상 그런 것 같다. ^^

얇지만 서술이 간결한 책이 가장 좋은 것 같다. 두꺼운 책은 무조건 거부하기로 했다.

 

댓글