広告スペース(バナー)
🟨JavaScript レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 56 / 69

static(クラスの静的プロパティ・メソッド)を使ってみよう

このレッスンでは、クラスのstaticプロパティ・メソッドの使い方を学び、インスタンスではなくクラス全体で共有するデータを扱えるようになることを目標にします。「JavaScript static 使い方」で調べている方向けの内容です。

staticを付けたプロパティやメソッドは、個々のインスタンスではなくクラス自体に属するデータになります。「全部のインスタンスで共有したい値」や「インスタンスを作らなくても呼べる処理」を作りたいときに使います。newでインスタンスを作らなくても、クラス名.メソッド名()で直接呼び出せる点が通常のメソッドとの大きな違いです。

サンプルコードでは、Counterクラスにstatic count = 0という共有のカウンターと、static increment()という共有の処理を定義しています。Counter.increment()を呼び出すたびにCounter.countが増えていく様子から、インスタンスを作らずにクラス自体が状態を持てることを確認してみましょう。

初心者がよくつまずくのが、通常のプロパティ・メソッドとstaticなプロパティ・メソッドを混同してしまうことです。インスタンス(newで作ったもの)からはstaticなメンバーに直接アクセスできず、必ずクラス名を通してアクセスする必要があります。この違いを意識できないと「なぜかundefinedになる」と混乱しがちです。

作成したインスタンスの数を数えるカウンターや、共通の設定値を保持する場所として使われることが多く、オブジェクト指向設計の重要な一部です。インスタンスごとの値と、クラス全体で共有する値の違いを意識できるようになりましょう。

JavaScript
OUTPUT / 実行結果

💡 console.log() の内容が実行結果に表示されます。

🎯
ここまでできればゴール達成!
これまで作成したインスタンスの数を数える仕組みが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)