Définir un membre privé d'une classe comme paramètre de constructeur
P粉761718546
P粉761718546 2024-04-06 21:48:47
0
1
815

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粉761718546
P粉761718546

répondre à tous(1)
P粉010967136

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});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal