2016-04-07 3 views
0

Gibt es eine Möglichkeit, Selbstreferenzierung wie unten in einem globalen, statischen Objekt in CS zu erreichen?Selbstreferenzierung in globalen, statischen Objekt in CoffeeScript

@Obj 
    x: ['string'] 
    y: [@x] 

Von dem, was ich gelesen habe, scheint dies nicht möglich. Hauptsächlich aufgrund der Tatsache, dass das Objekt noch nicht zum Zeitpunkt der Zuweisung von y erstellt wurde. Irgendeine Form von Getter und Setter (zB __definedSetter__, __defineGetter__, etc.) scheint die wahrscheinlichste Option zu sein, aber ich würde dieses Objekt in eine Klasse verwandeln müssen, und es gibt eine ganze Reihe von Problemen in CS und ich habe wenig Grund dazu tun Sie dies abgesehen von diesem Problem der Selbstreferenzierung. Gibt es eine Problemumgehung?

Danke!

Antwort

1

Wie Sie bereits erwähnt haben, wäre dies mit einer Klasse möglich (Sie können Obj.x im Konstruktor auf Obj.y verweisen und zuweisen). Wenn es ein statisches Objekt ist, würde ich es einfach in einer separaten Zeile mit @ Obj.y = [@ Obj.x] zuweisen.