ES 6:Classクラス

1390 ワード

Es 6は新しいコンストラクション関数の書き方を提供し,Classというキーワードを導入してコンストラクション関数を宣言した.
  • old type
  • function Person(x,y){
      this.x = x;
      this.y = y;
    }
    Person.prototype.init = function(){}
    // 
    new Person(1,2)
    
  • now
  • class Person(){
      constructor(x,y){
      this.x = x;
      this.y = y;
      }
      init(){}
    }
    // 
    new Person(1,2)
    

    注意方法間に「,」を付けない
  • プライベートメソッドプライベートメソッドは、その名の通り、オブジェクト内部でのみ呼び出され、一般的な需要
  • である.
    class List(){
      _get(){
      }
      init(){}
    }
    //_get "_" , , 
    
  • 継承サブクラスはconstructorメソッドでsuperメソッドを呼び出す必要があります.そうしないと、インスタンスを新規作成するとエラーが発生します.これは,子クラスが自分のthisオブジェクトを持たず,親クラスのthisオブジェクトを継承して加工するためである.superメソッドを呼び出さないと、サブクラスはthisオブジェクトを取得できません.
  • class Person(){
      constructor(x,y){
      }
    }
    class students extends Person(){
      constructor(x,y,z){
        super(x,y);
        this.z = z;
    }
    }
    
  • set get Classの内部でgetキーとsetキーを使用して、ある属性に対して値関数と値関数を設定できます.

  • ここを見ると、実は簡単な双方向バインドを実現することができます.
    class bind(){
      constructor(ele){
        this.ele = document.getElementBy(ele)
      }
      get html() { 
        return this.element.innerHTML;
       } 
      set html(value) 
      { 
        this.element.innerHTML = value; 
      }
    }
    
  • 静的方法staticで修飾する方法は、インスタンスに継承されず、直接クラス上で
  • を呼び出す.
    class Person(){
      static age(){ return 'hh'}
    }
    Person.age()  ==> hh