首頁  >  問答  >  主體

物件字面量/初始值設定項中的自引用

<p>有什麼方法可以讓像下面這樣的東西在 JavaScript 中運作嗎? </p> <pre class="brush:php;toolbar:false;">var foo = { a: 5, b: 6, c: this.a this.b // Doesn't work };</pre> <p>在目前形式中,此程式碼顯然會引發引用錯誤,因為 <code>this</code> 並未引用 <code>foo</code>。但是<em>有</em>有什麼方法可以讓物件字面量屬性中的值依賴先前聲明的其他屬性嗎? </p>
P粉921130067P粉921130067441 天前453

全部回覆(2)我來回復

  • P粉615829742

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

    你可以這樣做:

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

    這將是物件的某種一次性初始化。

    請注意,您實際上是將 init() 的傳回值指派給 foo,因此您必須傳回該值

    回覆
    0
  • P粉322319601
  • 取消回覆