Почему после правильной отработки метода класса возвращается undefined?

Есть клас:

class Movie {
    constructor(name, category, startShow) {
        this.name = name;
        this.category = category;
        this.startShow = startShow;
    }

    watchMovie() {
        console.log("I watch the movie " + this.name + "!");
    }
}

И есть 2 экземпляра класа:

const movie1 = new Movie("Titanic", "drama", 1997);
const movie2 = new Movie("Troya", "historical", 2004);

console.log(movie1.watchMovie());

Я не понимаю, почему после того, как метод отработал возвращается ещё и undefined error


Ответы (3 шт):

Автор решения: Qwertiy

Потому что он ничего не возвращает, очевидно же...

→ Ссылка
Автор решения: vsemozhebuty

Если функция (метод) не возвращает значения явно при помощи return, тогда возвращается undefined, как и в вашем случае. Вы дважды вызываете console.log() — один раз внутри метода со строкой, второй раз вне метода с результатом метода, который и есть undefined.

→ Ссылка
Автор решения: Angry Progy

потому что когда вы вызываете метод, в нем уже прописан console.log, нужно просто написать movie1.watchMovie();

→ Ссылка