Code Fix

上級インスタンス全体で共有したい値をstaticにし忘れる › パターン3

インスタンス全体で共有したい値をstaticにし忘れる

クラスのインスタンスをまたいで値を共有したい場合はstaticフィールドが必要です。

 1  class Logger {
 2    ______ history = [];
         ^
 3    static log(msg) {
 4      Logger.history.push(msg);
 5    }
 6  }
 7  Logger.log("a");
 8  Logger.log("b");
 9  console.log(Logger.history.length);
main.js:4 Logger.history.push(msg); ^ TypeError: Cannot read properties of undefined (reading 'push')

空欄を埋めて実行を通す

広告
広告スロット(未設定)

インスタンス全体で共有したい値をstaticにし忘れる

staticを付け忘れると、その値はクラス自身ではなく各インスタンスに独立して属するため、期待した共有ができません。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)