Проблема поднята для строк ниже в вашем коде.
const inputValidate = '';
this.inputValidate = inputValidate;
что это значит, это означает, что константная переменная inputValidate присвоена
this.inputValidate , поэтому this.inputValidate не является функцией.
В отличие от функции inputValidate (valueParsed, isInt) добавлен в прототип созданного объекта для класса по своей природе.
Итак, когда вы позвонили ниже линии
let Fib = new Fibonacci();
console.log(Fib.inputValidate());
затем найдите Fib.inputValidate сначала в функциях класса / конструктора, если не найден, то найдите Fib.inputValidate в прототипе.
поэтому, когда вы вызываете Fib.inputValidate () , он находит функцию в своей функции-конструкторе, но обнаруживает Fib.inputValidate - это свойство, подобное переменной, но не функции.
Вот почему отображается Uncaught TypeError: Функция не является функцией
Для наглядного понимания вы можете прочитать статью введите описание ссылки здесь
На самом деле в javascript нет класса, но ES6 вводит ключевое слово класса. На самом деле это ключевое слово класса просто синтаксический сахар.
Таким образом, каждый должен помнить фактический сценарий Класса.
Наконец, некоторые изменения вашего кода:
constructor() {
const isPerfectSquare = '';
const isFibonacci = '';
const isInt = '';
const inputValidate = '';
} // constructor
Теперь Fib.inputValidate () будет доступен.
И, наконец, нажатие / нажатие клавиши или любое другое событие это всегда указывает на элемент Dom, поэтому если вы используете функцию стрелки для нажатия клавиши / нажатия клавиши или любое другое событие, то будет указывать на объект класса.