Я строю простую N-back игру как маленький проект.Игра отслеживает совпадения в каждом сеансе, а также совпадения, которые получает игрок, а затем показывает игроку свой процент в процентах после каждого сеанса.Однако по какой-то причине мой метод подсчета возвращает NaN, хотя, если я запускаю вычисления внутри геттера, я получаю число.
Это метод оценки:
get score() { return Math.round(((this.player_matches / this.matches) * 100)
- (this.error_count * 3)); }
В конце каждой сессии оценка отображается как 0, потому что я написал метод обновления оценки для пользователя, чтобы отображать 0 с помощьюпо умолчанию, если оценка не является действительным числом:
update_score()
{
if (isNaN(this.score)
{
$('#score-output').text(0);
}
else {
$('#score-output').text(this.score);
}
}
И this.matches, и this.player_matches являются действительными числами.Тем не менее, если я открываю консоль и набираю game.score (у меня есть экземпляр моего класса как game), он возвращает NaN, но если я набираю Math.round (((game.player_matches / game.matches) * 100) - (game.error_count * 3));Я получаю номер.
Это невероятно расстраивает.Я не могу понять, почему вычисления внутри функционального блока оцениваются правильно, но при вызове как функции это не так.Если у кого-то есть какие-либо предложения или если вы хотите увидеть больше кода, дайте мне знать.Спасибо.