JavaScript対象プログラミングのclass継承(ES 6新特性)
2086 ワード
前言
先週、私は前に勉強した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コードに変換できます.