Es 6 classおよび構造関数(constructor)

815 ワード

Es 5では、生成インスタンスオブジェクトは、関数を構築することによって生成される.
function Fun(a,b) {
    this.a = a;
    this.b = b;
}
Fun.prototype.showA = function () {
    console.log(this.a)
}
var fun = new Fun(1,2);
fun.showA();//1

Es 6はclassの概念を引用し,java,c++などの言語に近づき,より直感的になる.次のようになります.
class Fun {
    constructor(a,b){
        this.a = a;
        this.b = b;
    }
    showA() {
        console.log(this.a);
    }
}
var fun = new Fun(1,2);
fun.showA();//1

この2つの書き方は同じで、es 6ではclassは文法糖と理解することができますが、この書き方をより直感的にすることができます.注意すべきは、es 6で新しいインスタンスを宣言するにはnewで宣言する必要があります.ここでconstructorはクラスのデフォルトメソッドであり、newの呼び出しでこのメソッドを実行できます.各クラスにはこの方法が必要です.定義が表示されていない場合は、空のconstructorがクラスに追加されます.constructorメソッドは、デフォルトでインスタンスオブジェクト、すなわちthisを返します.他のオブジェクトに戻ることもできます.このことは、新しいインスタンスinstanceofの現在のclassが間違っています.