静态方法在不同模块的骨干中继承

时间:2013-02-22 04:05:59

标签: class inheritance backbone.js coffeescript static-methods

我使用backbone.js作为网络应用。

我有不同的组件视图,它们源自少数基类。 每个视图都有很少的静态方法用于初始化和创建实例。

例如:

class Base extends Backbone.View
  @create:(config)->
      *do some processing based on config*
      *generate view parameters*
      viewparams = ....
      return new @(viewparams)
class Derived extends Base
  **some customizations and functions**

**at some point some where**
instanceDerived = Derived.create(*some params*)

这种方法的优点是,重新使用create方法很自然。 “@”或“this”指的是Derived类(构造函数),因此可以轻松创建对象。

当两个类都在同一个模块中时,代码运行良好。但是,当对象在不同的​​模块中时,create函数中的“@”或“this”引用“Base.create”而不是Derived类构造函数。

我不知道我是否在做一些非传统的编码。有人可以请教如何解决/构建这个问题吗?

0 个答案:

没有答案