выводится тело метода объекта после вывода свойств, JS
Начали изучать объекты в JS, задача: Создать объект, описывающий автомобиль (производитель, модель, год выпуска, средняя скорость), и следующие функции для работы с этим объектом.
- Функция для вывода на экран информации об автомобиле.
Если создать объект и в функции перебирать именно его свойства - все выводится корректно. Полез чуть глубже вводных - создал конструктор, и функцию вывода попытался реализовать как метод объекта. Код такой:
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]}`);
}
