2021_04_09


TIL - Prototype Chain, class


1. Prototype Chain


Prototype Chainとは、プロトタイプの上流プロトタイプに接続された構造を指す.下流にあるプロトタイプは、上流にあるプロトタイプと属性とメソッドを共有します.

上記のnewキーワードを使用してsteveインスタンスを生成します.
出力steveはprototypeが__ proto __に接続されていることを見ることができる.この形態をPrototype Chainと呼ぶ.
上の写真を見るとたくさんのものがあります.今日は__proto__、構造関数、prototypeについて勉強します.
  • __proto__オブジェクトの作成時にその祖先の関数として機能するPrototypeオブジェクトを指します.

    Steveのproto出力はHuman関数のPrototypeオブジェクトを指す.

  • prototype
    JavaScriptのすべてのオブジェクトは、少なくとも1つの他のオブジェクトから継承され、継承情報を提供するオブジェクトはプロトタイプと呼ばれます.

  • constructor
    clsss内でオブジェクトを作成および初期化する方法.
  • classを作成しnewキーを使用してインスタンスを作成すると、インスタンスはclassのコンストラクション関数によって初期化され、生成されたインスタンスのprotoはclass関数のprototypeオブジェクトを指します.

    2. Class


    JavaScript ES 6の導入に伴いClassが利用可能になった.前述したプロトタイプベースの継承をより明確に使用することができる.
    class Human { //클래스 정의
      constructor(name) { //생성자
        this.name = name;
      }
      sleep() { //메서드
        console.log(this.name + ' is sleeping...');
      };
    }
    このように生成されたクラスがstudentによって継承される場合、extendsキーワードを使用できます.
    class Student extends Human { //Student 클래스는 Human 클래스를 상속받는다.
      constructor(name) {
        super(name); //부모 클래스의 this를 사용하기 위해 사용된다.
      }
      learn() {~~};
    }
    ES 6を導入するとclassを使用してクラスを継承できますが、javascriptが完全にクラスベースのプログラミングであることを意味するわけではありません.プロトタイプに基づいているが,便宜上class概念を導入した.