Sto costruendo un'applicazione Node.js utilizzando un coffeescript orientato agli oggetti.Coffeescript: crea dinamicamente l'istanza della classe viene chiamato un metodo su
Ho un super class
con un metodo statico come:
class RedisObject
@find: (id, cb) ->
client.HGETALL "#{@className()}|#{id}", (err, obj) =>
unless err
cb(new RedisObject(obj, false))
C'è una sottoclasse come
class User extends RedisObject
Quando chiamo find()
sul User class
lo voglio passare un'istanza di User
invece di RedisObject
alla funzione di callback.
ho cercato di realizzare questo da ottenere il nome di classe della classe attuale il metodo viene chiamato al sistema utilizzando
@constructor.name
e utilizzare eval()
per generare un'istanza da esso - ma il problema è che la sottoclasse sarà essere indefinito all'interno della superclasse.
Come posso realizzare il comportamento di ottenere diversi tipi di istanze restituite dal metodo find
a seconda della classe in cui viene chiamato, senza dover sovrascriverlo in ciascuna sottoclasse?
grazie! funziona perfettamente – Matthias
Btw, la funzione "nuovo questo" non è documentata, non riesco a trovarla nella sezione Classi. È davvero utile, dovrebbe essere specificato. – Ciantic