В javascript мало просто реализовать метод объекта. Неожиданно this внутри этого метода может указать на что-то другое, а не этот объект. Почему в языке сделали именно так?
Курсы по js:
базовый - https://js.dmitrylavrik.ru/
vue - https://js.dmitrylavrik.ru/vue
продвинутый - https://js.dmitrylavrik.ru/frontend