1. Зачем вызывать init снаружи класса, если это можно делать в constructor после объявления членов класса?
2. prevSlide - хорошее название для метода которые переключает текущий слайд на предыдущий, но не для метода регистрирующего обработчик события. Тоже самое с nextSlide
3. this.showSlide(this.index -= 1); – зачем делать присваивание, если за эту логику отвечает код showSlide? Ответ как-то связан с синхронизацией значения индикатора. Чтобы избавиться от этой проблемы, можно определить метод normalizePosition, туда передавать index +1 или index -1, он вернет значение от 0 до length -1 и потом его передавать в showSlide, setIndicator. Соответственно оттуда логику нормализации убрать