Ich erstelle eine Node.js-Anwendung, die objektorientiertes coffeescript verwendet.Coffeescript: Instanz der Klasse dynamisch erstellen Eine Methode wird aufgerufen
Ich habe ein super class
mit einer statischen Methode wie:
class RedisObject
@find: (id, cb) ->
client.HGETALL "#{@className()}|#{id}", (err, obj) =>
unless err
cb(new RedisObject(obj, false))
eine Unterklasse gibt wie
istclass User extends RedisObject
Wenn ich rufe find()
auf dem User class
ich es will stattdessen eine Instanz von User
passieren von RedisObject
auf die Callback-Funktion.
Ich habe versucht, dies zu realisieren, indem die Klassennamen der tatsächlichen Klasse immer die Methode unter Verwendung von aufgerufen wird
@constructor.name
und eval()
eine Instanz davon zu erzeugen - aber das Problem ist, dass die Unterklasse aus der Oberklasse undefiniert sein.
Wie kann ich das Verhalten beim Abrufen verschiedener Typen von Instanzen, die von der find
-Methode zurückgegeben werden, abhängig davon, an welcher Klasse es aufgerufen wird, realisieren, ohne es in jeder Unterklasse zu überschreiben?
danke! funktioniert perfekt. – Matthias
Btw, das "neue dies" ist kein dokumentiertes Feature, ich kann es nicht im Abschnitt Klassen finden. Es ist wirklich nützlich, es sollte angegeben werden. – Ciantic