Я создал синтаксис класса со свойствами и методами. У свойств есть массивы, и я хотел создать пространство между этими элементами в массивах. Когда я создал метод, который возвращает строку с этими свойствами, я использовал метод join (','), чтобы освободить место между элементами массива.
Когда я создаю свои экземпляры и вызываю их в консоли, это не работает. Выдает эту ошибку:
*Uncaught TypeError: this.interests.join is not a function*
вот мой код:
class Person {
constructor(first, last, age, gender, interests) {
this.name = {
first,
last
};
this.age = age;
this.gender = gender;
this.interests = interests;
}
greeting() {
* //here is the problem *
let hobbies = this.interests.join(' ,')
return `Hi. I'm ${this.name.first} I am ${this.age} . I like ${hobbies}`;
}
farewell() {
return `${this.name.first} has left the building. Bye for now!`;
}
}
class Student extends Person {
constructor(first, last, age, gender, interests, grade) {
super(first, last, age, gender, interests);
this.grade = grade;
}
}
let ron = new Student('Ron', 'Weasley', 14, 'Quidditch', 3);
let harry = new Student('Harry', 'Potter', 14, ['Quidditch', 'cause problems'], 3);
let hermione = new Student('Hermione', 'Granger', 14, ['Studying', 'Read'], 3);
let neville = new Student('Neville', '', 14, 'Herbiology', 3);