Классы JS, переопределение toString
Создать класс Programmer
, инстанс которого обладает полями name
, stack
(массив строк, типа ["Python", "PHP", "Java"]
), и методом code()
(который перебирает массив stack
и выводит сообщения вида "Oleg is coding on Python", "Oleg is coding on PHP", "Oleg is coding on Java"). Метод code()
должен храниться в прототипе класса. Переопределить метод toString()
у инстансов Programmer
, чтобы они выводили сообщение вида "Hello my name is Oleg".
У меня ошибка что toString()
undefined. И я не понимаю, как объявить stack
массив ["Python", "PHP", "Java"]
, чтобы он его перебрал и выводил строку на каждый stack
.
class Programmer {
constructor(userName, stack){
this.userName = userName;
this.stack = stack;
Programmer.prototype.code = function () {
console.log(`${this.userName} is coding on ${this.stack}`);
};
}}
const pr =new Programmer('Oleg', ['Python', 'PHP', 'Java']);
pr.code();
pr.prototype.toString = function prToString() {
return `Hello my name is ${this.userName} `;
}
"Oleg is coding on Python,PHP,Java" - вот как у меня выдает, всё вместе.