私のクラス内にあるという変数を 'としましょう'と比較する必要があります。比較は、 'utcChange'と呼ばれる別の機能で実行する必要があります(ボタンをクリックした後)。私は、この変数を最初に宣言すれば、どこにでもアクセスできるようになると思っていました。なぜ内部のステートメントutcChange機能が動作していないのですか?は、グローバル変数としてもクラス内の変数の値を比較できません
let hours;
class Clock {
el: Element;
constructor(element) {
this.el = element;
setInterval(() => this.run(), 1000)
}
run() {
var time = new Date();
let hours = time.getHours()+utcValue;
var hoursChanged = hours.toString();
var minutes = time.getMinutes().toString();
var seconds = time.getSeconds().toString();
if (hoursChanged.length < 2) {
hoursChanged = '0' + hoursChanged;
}
if (minutes.length < 2) {
minutes = '0' + minutes;
}
if (seconds.length < 2) {
seconds = '0' + seconds;
}
var clockStr = hours + ' : ' + minutes + ' : ' + seconds;
this.el.textContent = clockStr;
}
}
var clock = new Clock(document.getElementById('tsClock'));
var utcButton = document.getElementById('button');
utcButton.addEventListener("click", utcChange);
var utcValue = 0
function utcChange(){
if (hours < 23) {
utcValue += 1
}
}
私はあなたがこのグローバル変数を初期化していることがわかりいけません。何かが発生した場合にもエラーを貼り付けることができますか? –