ES6 では、コード記述をさらに削減し、コード ロジックを簡素化するために、キーワード クラスが導入されています。ただし、クラスの実装もプロトタイプに基づいており、その機能のほとんどは ES5 で実現できます。新しいクラスの記述方法は、オブジェクト プロトタイプの記述方法をより明確にし、オブジェクト指向プログラミングに近づけるだけです。ただの文法。
class Person { constructor(name) { this.name=name||"Default"; } toString(){ return 'Name:'+this.name; } } var p1=new Person(); console.log(p1.name); class Boy extends Person{ constructor(name){ super(name); this.gende='Boy'; } toString(){ return super.toString()+" - Gende:"+this.gende; } } var b1=new Boy('hello'); console.log(b1); console.log(b1.toString());
ES5の継承、つまりプロトタイプ
本質は、まずサブクラスのインスタンスオブジェクトthisを作成し
、そこに親クラスのメソッドを追加する(Parent.apply(this))
の継承ES6、つまりクラスです
本質は、最初に親クラスのインスタンスオブジェクトを作成することです(最初にスーパーを呼び出す必要があります)
次にサブクラスのコンストラクターを使用してこれを変更します
実装メカニズムは異なります
ES6とES5のように, クラスのすべてのインスタンスはプロトタイプ オブジェクトを共有します
es6 の場合でも、ドキュメントを読む必要があります。
関連する推奨事項:
ES6 JavaScript での get および set class クラスの使用例
以上がES6におけるクラスとjsプロトタイプのプロトタイプ継承の関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。