recherche

Maison  >  Questions et réponses  >  le corps du texte

Définir un membre privé d'une classe comme paramètre de constructeur

class Foo {
  #one
  #two
  #three
  #four
  #five
  #six
  #seven
  #eight
  #nine
  #ten
  #eleven
  #twelve
  #thirteen
  #fourteen
  #fifteen
  #sixteen

  constructor(
    one,
    two,
    three,
    four,
    five,
    six,
    seven,
    eight,
    nine,
    ten,
    eleven,
    twelve,
    thirteen,
    fourteen,
    fifteen,
    sixteen
  ) {
    this.#one = one;
    this.#two = two;
    this.#three = three;
    this.#four = four;
    this.#five = five;
    this.#six = six;
    this.#seven = seven;
    this.#eight = eight;
    this.#nine = nine;
    this.#ten = ten;
    this.#eleven = eleven;
    this.#twelve = twelve;
    this.#thirteen = thirteen;
    this.#fourteen = fourteen;
    this.#fifteen = fifteen;
    this.#sixteen = sixteen;
  }
}

Quelle est la solution à ce schéma (anti ?) ?

P粉761718546P粉761718546256 Il y a quelques jours946

répondre à tous(1)je répondrai

  • P粉010967136

    P粉0109671362024-04-07 12:15:44

    Pour quiconque souhaite utiliser un constructeur, avoir 16 paramètres n'est pas amusant. L'idée d'objet de configuration que vous avez suggérée dans votre commentaire est bien sûr beaucoup plus intéressante lorsque vous la combinez avec l'idée d'avoir des propriétés privées pour un objet de type qui possède toutes ces propriétés. Vous pouvez ensuite utiliser Object.assign pour le mettre à jour en fonction des préférences de l'utilisateur :

    class Foo {
      #options = {
        one: 1,
        two: 2,
        three: 3,
        four: 4
      }
      constructor(options = {}) {
        Object.assign(this.#options, options);
        console.log(this.#options);
      }
    }
    
    let foo = new Foo({three: 3000});

    répondre
    0
  • Annulerrépondre