ホームページ  >  記事  >  ウェブフロントエンド  >  ES6におけるクラスとjsプロトタイプのプロトタイプ継承の関係

ES6におけるクラスとjsプロトタイプのプロトタイプ継承の関係

小云云
小云云オリジナル
2018-03-07 15:27:561388ブラウズ

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 の class キーワードの詳細な説明

ES6 JavaScript での get および set class クラスの使用例

js の Prototype 属性の使用方法の詳細な説明

以上がES6におけるクラスとjsプロトタイプのプロトタイプ継承の関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。