Как использовать функцию внутри функции внутри класса?
Стрелочные функции вроде для этого как раз, чтобы this пробрасывать.
Вот так не работает?this.player.addEventListener('ended', () => {
            this.nextSong();
            console.log('Audio file ended');
        });
А точно с self правильно пробовали?var self = this;
this.player.addEventListener('ended', function (){
            self.nextSong();
            console.log('Audio file ended');
        });
Должно работать. Но, честно говоря, так теперь мужики не пишут. Не по-ES6'овски! Надо писать так:this.player.addEventListener('ended', () => {
            this.nextSong();
            console.log('Audio file ended');
        });