上級 › インスタンス全体で共有したい値を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')
空欄を埋めて実行を通す
historyをstaticにしないと、Logger.historyはクラス自身には存在せずundefinedのままです。pushを呼ぼうとした瞬間にエラーになります。
次の問題