Selbstreferenzen in Objektliteralen/Initialisierern
P粉921130067
P粉921130067 2023-08-29 12:38:19
0
2
418
<p>Gibt es eine Möglichkeit, so etwas wie das Folgende in JavaScript zum Laufen zu bringen? </p> <pre class="brush:php;toolbar:false;">var foo = { a: 5, b: 6, c: this.a + this.b // Funktioniert nicht };</pre> <p>In seiner aktuellen Form löst dieser Code offenbar einen Referenzfehler aus, da <code>this</code> nicht auf <code>foo</code> verweist. Aber<em>ja</em>Gibt es eine Möglichkeit, den Wert in einer Objektliteraleigenschaft von anderen zuvor deklarierten Eigenschaften abhängig zu machen? </p>
P粉921130067
P粉921130067

Antworte allen(2)
P粉615829742

你可以这样做:

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

这将是对象的某种一次性初始化。

请注意,您实际上是将 init() 的返回值分配给 foo,因此您必须返回该值

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!