aono1234
@aono1234

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

コンストラクタの必要性

コンストラクタの必要性がわかりません

コンストラクタとはインスタンスされた際に呼び出される関数であると
どこのサイトにも記載があります。
しかし、わざわざコンストラクトを書かなくてもいいのではと感じました。
以下のようにコードであればどちらも出力結果は同じです。
コンストラクトなしのほうでは不都合があるということでしょうか?
すみませんが、ご教授をお願いいたします。

ソースコード

class a1 {
  y=1;
}

class b1 {
    constructor(){
        this.y=1;
    }
}
const test1 = new a1;
const test2 = new b1;

console.log(test1.y);
console.log(test2.y);
0

2Answer

このようなシンプルなケースでコンストラクタはいらないです。
コンストラクタを使う利点は、newする時に引数を受け取って、使う側が指定した値を渡してインスタンスのプロパティを変えられるという点です。


class Foo {
  constructor(first_name, last_name) {
    this.full_name = first_name + last_name
  }
}

const me = new Foo('Paul', 'Joe')
0Like

Comments

  1. @aono1234

    Questioner

    ご回答ありがとうございます。つまり、関数の引数のような設定をクラスでもしたい場合はコンストラクタで行うということですね。理解しました。

コンストラクタの実装は任意なので、提示されたコードのようにエラーにはなりません。
インスタンスが生成された際、そのクラスにとって初めに処理しなければならない処理(初期処理)が必要になるケースがあるなら実装します。

もっと詳しい事が知りたいならECMAScriptの仕様書などを読んでみて下さい。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes/constructor

0Like

Comments

  1. @aono1234

    Questioner

    ご回答ありがとうございます。参考URLもよく確認させていただきます。

Your answer might help someone💌