ES6 ---静的メソッドのクラス、静的およびインスタンスのプロパティ

はじめに:

  プロトタイプに対応するクラスの例には、クラスで定義されているすべての方法は、インスタンスが継承されます。

 

本体:

静的なキーワードで結合された従来の方法では、それは方法があることを意味している場合、インスタンスを継承することはできませんしかし、直接の呼び出しに、クラスによって呼ばれて、「静的メソッド。」
しかし、また、サブクラスによって継承された親クラスの静的メソッドに注意を払います、

 

注:インスタンスを起動すると文句を言います

例外TypeError:dad.habitがある関数ではありません

 

(2)静的メソッドはまた、スーパーオブジェクトから呼び出すことができ

 

 

 

 

(3)静的プロパティ  

静的クラス属性は、属性自体、すなわちClass.propname、(インスタンス・オブジェクト定義ではなく指すこれにプロパティ)A

  

 

    フークラスとして上記文言は、静的プロパティの小道具を定義します。
  現在、唯一のそのようなアプローチは内部クラスの静的メソッドのみ、静的プロパティことES6明らかので、実現可能です

  

 

 

 

属性の例(4)クラス

  ES7は静的プロパティ、現在バベルトランスコーダのサポートを提案しました。インスタンスのプロパティと静的プロパティのための提案は、新しい文言を提供します。

  クラスインスタンスの属性は、クラスで定義された式は、書かれているによるものであってもよいです。  

  

 

   上記のコード、MyPropではMyClassのの属性の例です。MyClassのインスタンスでは、このプロパティを読み取ることができます。
  以前、我々は、インスタンスのプロパティは、クラスの内部コンストラクタメソッドに書き込むことができます定義されます。

  

 

   上記のコードでは、コンストラクタコンストラクタはthis.stateプロパティを定義しています。
  将来的に新しい文言では、コンストラクタメソッドが定義されない場合があります。  

   这个新写法大大方便了静态属性的表达

  

小结:
上面代码中, 老写法的静态属性定义在类的外部。 整个类生成以后, 再生成静态属性。
这样让人很容易忽略这个静态属性, 也不符合相关代码应该放在一起的代码组织原则。
另外, 新写法是显式声明( declarative), 而不是赋值处理, 语义更好。

 

   

 

 

.

おすすめ

転載: www.cnblogs.com/jianxian/p/12343220.html