我正在使用面向对象的咖啡脚本构建一个 Node.js 应用程序。
我有super class
一个静态方法,例如:
class RedisObject
@find: (id, cb) ->
client.HGETALL "#{@className()}|#{id}", (err, obj) =>
unless err
cb(new RedisObject(obj, false))
有一个像
class User extends RedisObject
当我调用find()
时,User class
我希望它传递一个实例User
而不是RedisObject
回调函数。
我试图通过获取调用该方法的实际类的类名来实现这一点
@constructor.name
并用于eval()
从中生成一个实例 - 但问题是子类将在超类中未定义。
如何实现find
根据调用的类获取方法返回的不同类型实例的行为,而不必在每个子类中重写它?