Проблема в том, что вы используете Object.getOwnPropertyNames
неправильно.Вам не нужно использовать call
для этого, вы просто звоните. * И вам нужно передать экземпляр Student
;сам объект класса не имеет никаких свойств.Свойства создаются в конструкторе, и ничто не может сказать вам, какие свойства будет иметь экземпляр при просмотре объекта класса.
class Student {
constructor(name, birthDate) {
this.name = name;
this.birthDate = birthDate;
}
get age() {
return 2018 - this.birthDate;
}
display() {
console.log(`name ${this.name}, birth date: ${this.birthDate}`);
}
}
console.log(Object.getOwnPropertyNames(new Student));
* Во всяком случае, Object.getOwnPropertyNames.call(Object, new Student)
делает то, что вы хотите, но это бессмысленно.