1

我正在将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类的构造函数。

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

4

0 回答 0