我使用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类构造函数。
我不知道我是否在做一些非传统的编码。有人可以请教如何解决/构建这个问题吗?