LoginSignup
0
1

More than 1 year has passed since last update.

ChatGPTで始めるJavaScript入門⑨~クラス~

Last updated at Posted at 2023-04-02

概要

 今回は3.JavaScriptの文法と構文について、の
 クラスについて確認していきます。

 他言語では一般的なクラスですが、JavaScriptはプロトタイプベースなので、ES6からクラスという概念が使用できます。

 ※無料版なので、誤っている情報もあると思いますが、アウトプットできれば良しとします。

クラス

 JavaScriptにおけるクラスはどういったことができて、何に注意すればいいかを聞いてみます。

 【質問】
 JavaScriptの文法と構文について、クラスの概要、記述方法や注意点を教えてください。

 【回答】
 JavaScriptのクラスは、オブジェクト指向プログラミングの機能の一つで、複数の関数や変数をまとめて、ひとつの「クラス」という単位で扱うことができます。 
 JavaScriptのクラスは、ES6(ECMAScript2015)から導入されました。

クラスの基本的な構文

以下は、JavaScriptでクラスを定義する基本的な構文です。

class.js
class MyClass {
  constructor(prop1, prop2) {
    this.prop1 = prop1;
    this.prop2 = prop2;
  }

  method1() {
    // メソッドの処理
  }

  method2() {
    // メソッドの処理
  }
}

classキーワードでクラスを定義します。
constructorメソッドは、クラスのインスタンスが作られるときに実行されるメソッドで、クラスのプロパティを初期化するために使用されます。
method1やmethod2は、クラスのメソッドです。

クラスの注意点

クラス内で定義するメソッドには、アロー関数を使わずに通常の関数を使用する必要があります。
これは、アロー関数では自身を参照するためのthisが定義されず、予期しない動作をすることがあるためです。
クラスのプロパティには、アンダースコア(_)を前置する命名規則がありますが、実際にはプライベートプロパティを定義するためのものではありません。
代わりに、ES2022からはプライベートフィールドが導入されており、#を前置することで定義することができます。

クラスの継承

JavaScriptでは、クラスの継承もサポートされています。
以下は、クラスの継承を実現する構文の例です。

extends.js
class MySubClass extends MyClass {
  constructor(prop1, prop2, prop3) {
    super(prop1, prop2);
    this.prop3 = prop3;
  }

  method3() {
    // メソッドの処理
  }
}

extendsキーワードを使って、親クラスを指定します。
superキーワードを使って、親クラスのコンストラクタを呼び出します。
子クラスで新たに定義するメソッドやプロパティがある場合は、親クラスには影響を与えずに子クラスに追加することができます。


extends・superやプライベート化など、他言語とも変わりなく使用できるようです。
ただ、バージョンによって使用できないことを考えると、現場によっては使われていない場合もあるので、注意が必要です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1