JavaScript対象プログラミングのclass継承(ES 6新特性)

2086 ワード

  • クライテリア
  • はなぜ新しいクラスのキーワードを導入する必要がありますか?
  • classを通じて
  • を継承します.
    前言
    先週、私は前に勉強したJSの中で対象、対象の属性及び基本的な対象の作成と継承の概念をまとめました.今日は去年発表したES 6のクラスのキーワードを書きます.
    なぜ新しいクラスのキーワードを導入する必要がありますか?
    プロトタイプ継承の欠点に基づいて、大量の実現コードを作成し、正しくプロトタイプチェーンを実現する必要があります.したがって、ES 6のキーワードクラスは正式にJavaScriptに導入されました.
    function Student(name) {
        this.name = name;
    }
    
    Student.prototype.hello = function () {
        alert('Hello, ' + this.name + '!');
    }
    class Student {
        constructor(name) {
            this.name = name;
        }
    
        hello() {
            alert('Hello, ' + this.name + '!');
        }
    }
    コンストラクタはコンストラクタです.注意hello()関数にはfunctionキーワードがありません.
    クラスで継承
    class PrimaryStudent extends Student {
        constructor(name, grade) {
            super(name); //    super         !
            this.grade = grade;
        }
    
        myGrade() {
            alert('I am at grade ' + this.grade);
        }
    }
    ES 6のクラスの使い方はJavaと似ています.実現方法は、私達が自分で作成したプロトタイプチェーンコードをJSエンジンに実現させることです.しかし、現在はすべての主流ブラウザがES 6のクラスをサポートしているわけではない.Babelというツールを使って、classコードを伝統的なprototypeコードに変換できます.