if (this.frame < 0) {
this.frame = this.slides.lenght-1;
this.setBackground(this.slides[this.frame])
}
Если
frame неотрицательный, то вызывать
setBackground уже не надо?
Что такое lenght? Я такого слова не знаю.И массивы не знают. Так что получаете undefined. А после вычитания единицы - NaN. Элемента с индексом NaN в массиве нет, так что в setBackground улетает undefined - его вы и видите в стилях.
if (this.frame > this.slides.length) {
По-вашему, у массива может быть элемент с индексом, равным длине?
buttonLeft.addEventListener('click', slider.left());
Функция и результата её вызова - не одно и то же.