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

Auto-références dans les littéraux/initialiseurs d'objet

<p>Existe-t-il un moyen de faire fonctionner quelque chose comme ce qui suit en JavaScript ? </p> <pre class="brush:php;toolbar:false;">var foo = { une: 5, b: 6, c: ceci.a + ceci.b // Ne fonctionne pas };</pré> <p>Dans sa forme actuelle, ce code génère apparemment une erreur de référence car <code>this</code> ne fait pas référence à <code>foo</code>. Mais<em>oui</em>Existe-t-il un moyen de rendre la valeur d'une propriété littérale d'objet dépendante d'autres propriétés déclarées précédemment ? </p>
P粉921130067P粉921130067441 Il y a quelques jours454

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

  • P粉615829742

    P粉6158297422023-08-30 11:54:25

    Vous pouvez faire ceci :

    var foo = {
       a: 5,
       b: 6,
       init: function() {
           this.c = this.a + this.b;
           return this;
       }
    }.init();

    Ce sera une sorte d'initialisation unique de l'objet.

    Veuillez noter que vous ajoutez en fait init() 的返回值分配给 foo,因此您必须返回该值.

    répondre
    0
  • P粉322319601
  • Annulerrépondre