物件字面量/初始值設定項中的自引用
P粉921130067
P粉921130067 2023-08-29 12:38:19
0
2
461
<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粉921130067
P粉921130067

全部回覆(2)
P粉615829742

你可以這樣做:

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

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

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板