クラス内に入れる、入れない、の判断はどうすればいいですか?

状況に応じて判断していく必要があります。
2022年2月21日
ユーザー

お世話になります。
上記質問タイトルの分類の仕方が分からないので教えていただけますか?

今回のレッスンの場合、コンストラクタ内にパネルの本体を作る部分(すみませんうまく表現できないのですが、ウェブ上に表示される大枠の部分というのでしょうか…)を書く。

それからコンストラクタの親要素?である Panel クラスにはさらに追加で getRandomImage() メソッド、 spin() メソッドも入れて一つの Panel クラスとする。

その Panel クラスが 1 枚のパネルになるので、

const panels = [
  new Panel(),
  new Panel(),
  new Panel(),
];

としてそれを 3 枚分作成する、というところまで理解できたのですが、どのようにクラス、コンストラクタ、それ以外と 3 種類に仕分けしたのかがまだ掴めていません。

コンストラクタ内にメソッドも入れ込んではいけないのでしょうか?
このメソッドもコンストラクタ内の処理と同様にパネル 1 枚 1 枚に対して 1 個ずつ作成され、個々に処理が実行されていると思うので、クラス内に入れても問題はないかと思うのですが…
そもそもメソッドはコンストラクタ内に書き込んではいけないのでしょうか?

上記と関連して、 STOP ボタンにイベントリスナを付けている部分も、なぜこの場所に書いているのかが分かりません。
クリックイベントをコンストラクタ内に書き込むまでは何となく理解できるのですが、そのあとの

if (panelsLeft === 0) {
  checkResult();
}

は全体の処理に関わるものなのでクラスの外側に書くべき、なのではないかと思ったのですが、なぜこの場所だったのでしょうか??

そもそもクラス外には全体の処理に使用する関数や、定数、変数を書く、という認識でよろしいでしょうか?

以上長々と申し訳ありませんがご確認いただけますでしょうか。
よろしくお願いいたします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(6)