web-dev-qa-db-fra.com

ES6 Destructuring in Class constructeur

Cela peut sembler ridicule, mais supportez-moi. Je me demande s'il existe un support au niveau du langage pour détruire l'objet en propriétés de classe dans le constructeur, par exemple.

class Human {
    // normally
    constructor({ firstname, lastname }) {
        this.firstname = firstname;
        this.lastname = lastname;
        this.fullname = `${this.firstname} ${this.lastname}`;
    }

    // is this possible?
    // it doesn't have to be an assignment for `this`, just something
    // to assign a lot of properties in one statement
    constructor(human) {
        this = { firstname, lastname };
        this.fullname = `${this.firstname} ${this.lastname}`;
    }
}
23
Lim H.

Vous ne pouvez pas attribuer à this n'importe où dans la langue.

Une option consiste à fusionner dans this ou un autre objet:

constructor(human) {
  Object.assign(this, human);
}
39
user663031