クラスの基本的な文法
JavaScriptの言語、従来の方法では、コンストラクタで、新しいオブジェクトが定義されます。
// コンストラクタ定義 関数{点(X、Y) この .X = ; X この .Y = ; Y } // プロトタイプにインスタンスコンストラクタメソッドを追加 Point.prototype.toString = 関数(){ リターン 'を( '+ この .X +'、 '+ この .Y +'); } // 新しいオブジェクトを生成 するvar P = 新しい新しいポイントを(1、2)。
新しい文言だけで、オブジェクト指向プログラミングの構文のみのように、クラスオブジェクトのプロトタイプ文言を明確にしましょう。
以下のように「クラス」とのコード上記ES6は、リライトされます。
// クラスの定義 クラスPoint { コンストラクタ(X、Y){ // コンストラクタ、オブジェクトのこの代表的な例として 、この .X = X; この .Y = Y; } // 方法(実施例を継承する)クラス のtoString() { リターン '(' + この .X + '' + この .Y + ') } } // 新たなオブジェクトを生成 するvar P = 新しい新しいポイントを(1、2)
クラス上で定義された方法は、プロトタイプに上記特性です。
次の方法に相当:
Point.prototype = {
のtoString(){}
}
コンストラクタメソッド
新しいコマンド、自動呼び出しメソッドによって生成されたクラスとオブジェクトインスタンスのデフォルトコンストラクタです。明示的に定義されていない場合は、空のデフォルトのコンストラクタメソッドが追加され、クラスのコンストラクタ・メソッドが存在する必要があります
デフォルトのコンストラクタメソッドは、オブジェクト(即ち本)のインスタンスを返し、別のオブジェクトが返さ指定することができます。
FOO {クラス コンストラクタ(){ 戻り Object.create(ヌル); // 戻り値を変更する } } 新しい新規のfoo()をinstanceofのFOO // falseにします
クラスのコンストラクタ、NA新しいコールエラー。
オブジェクトクラスのインスタンスを作成する方法?
VaRの点= 新しいポイント(2,3)。
クラス式
// クラス発現 CONST MyClassのクラス= Meの{ // コードのみ利用可能な内部Meのクラスは現在のクラスを指し、それは省略されてもよいです。 getClassNameメソッドは、(){ 戻りMe.Nameを; } }
プライベートメソッド
わずかに
この時点
クラスの既定のインスタンスを指し、これを含むクラスの内部メソッド場合。
クラスの継承
継承はキーワードによって達成することができるクラスとの間に延びています。
クラスColorPointは} {ポイントを拡張します
スーパーキーワードは、このオブジェクトの新しい親のための親クラスの構造を示しています
ES6の継承メカニズムは、(あなたが最初のスーパーメソッドを呼び出す必要があります)最初に、この親クラスのオブジェクトのインスタンスを作成することで、このサブクラスを修正するコンストラクタを使用します
コンストラクタ(引数...){
スーパー(... argsを)。
}
あまりにも長い間、背後にあるすべての省略...
参考記事:http://jsrun.net/tutorial/SZKKp