我正在将backbone.js 用于Web 应用程序。
我有不同的组件视图,它们派生自几个基类。每个视图都有一些用于初始化和创建实例的静态方法。
例如:
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”是指派生类(构造函数),因此可以轻松创建对象。
当两个类都在同一个模块中时,该代码运行良好。但是,当对象在不同的模块中时,create函数内部的“@”或“this”指的是“Base.create”而不是Derived类的构造函数。
我不知道我是否在这里做一些非常规的编码。有人可以请教如何解决/构建这个问题吗?