【JavaScript ECMAScript】super言語機能の使い方
super言語機能の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
superオブジェクトは、JavaScriptのクラス継承において、サブクラスから親クラスのコンストラクタやメソッド、プロパティにアクセスするために使用される特別な参照を表すオブジェクトです。
このsuperは主に二つの状況で使用されます。一つ目は、サブクラスのコンストラクタ内で親クラスのコンストラクタを呼び出す場合です。サブクラスのコンストラクタ内でthisキーワードを使用する前に、super()のように記述して呼び出す必要があります。これにより、親クラスの初期化処理が実行され、サブクラスのインスタンスが正しく初期化されます。
二つ目は、サブクラスのメソッド内で親クラスのメソッドやプロパティにアクセスする場合です。例えば、サブクラスで再定義された(オーバーライドされた)親クラスのメソッドを呼び出したいときは、super.親メソッド名()のように記述します。また、親クラスが持つプロパティの値にアクセスしたい場合は、super.親プロパティ名のように記述することが可能です。これにより、親クラスで定義された機能を再利用しつつ、サブクラスで独自の機能を追加・拡張するといった、効率的なプログラミングが可能になります。
superは、オブジェクト指向プログラミングの重要な概念である継承を実現し、コードの再利用性と保守性を高める上で不可欠な要素です。
公式リファレンス: super
構文(syntax)
1class ParentClass { 2 constructor(propertyA) { 3 this.propertyA = propertyA; 4 } 5 6 methodA() { 7 return this.propertyA; 8 } 9} 10 11class ChildClass extends ParentClass { 12 constructor(propertyA, propertyB) { 13 super(propertyA); 14 this.propertyB = propertyB; 15 } 16 17 methodB() { 18 return super.methodA() + ' ' + this.propertyB; 19 } 20}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません