выводится тело метода объекта после вывода свойств, JS

Начали изучать объекты в JS, задача: Создать объект, описывающий автомобиль (производитель, модель, год выпуска, средняя скорость), и следующие функции для работы с этим объектом.

  1. Функция для вывода на экран информации об автомобиле.

Если создать объект и в функции перебирать именно его свойства - все выводится корректно. Полез чуть глубже вводных - создал конструктор, и функцию вывода попытался реализовать как метод объекта. Код такой:

let yourCar;

function MakeCar (manufacturer, model, yearOfIssue, averageSpeed) {
    manufacturer = prompt('Введите производителя авто');
    model = prompt('Введите модель авто');
    yearOfIssue = prompt('Введите год выпуска авто')
    averageSpeed = prompt('Введите среднюю скорость авто');

    this.manufacturer = manufacturer;
    this.model = model;
    this.yearOfIssue = yearOfIssue;
    this.averageSpeed = averageSpeed;

}
MakeCar.prototype.outInfo = function () {
    for (let key in this) {
        console.log(`${key}: ${this[key]}`);
    }
}

outputAuto = () => {
    yourCar = new MakeCar();
    yourCar.outInfo();
    return yourCar;
}

инфу выводит, созданный объект возвращает - он дальше используется. Но в конце вывода добавляет тело функции, вот так:

Результат

Что неправильно делаю? как убрать?


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

Автор решения: Алексей Шиманский

Надо добавить проверку на функции:

for (let key in this) {
    if (typeof this[key] !== "function")
        console.log(`${key}: ${this[key]}`);
}
→ Ссылка