как получить список свойств класса javascript - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть javascript этого класса:

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.call(Student));

Я хочу получить имена из списка свойств. Я пытался использовать что-то вроде этого:

Object.getOwnPropertyNames.call(Student)

Но это не работает. что я должен получить в этом примере, это только имя и дата рождения. без других методов или получателей.

1 Ответ

0 голосов
/ 06 сентября 2018

Проблема в том, что вы используете 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) делает то, что вы хотите, но это бессмысленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...