class A
  constructor:
    //dosomething
  loadFunctions:
    loadDrillingCharges: (memoize) ->


class B extends A
  constructor:
    super()
  loadFunctions:
    loadLockDDR: (memoize) ->


(new B).loadFunctions将是仅具有loadLockDDR属性的对象

我希望(new B).loadFunctions{ loadDrillingCharges: -> , loadLockDDR: -> }

我可以_.extend(B::loadFunctions, A::loadFunctions),但它并不优雅。

我尝试使用cocktail mixin,但它弄糟了super()

扩展后如何合并对象而不弄乱超级脚本。

最佳答案

CoffeeScript本身不支持Mixins,这是因为
他们可以自己轻松实现。例如,这里有两个功能,
extend()和include(),分别将类和实例属性添加到类中:


扩展=(obj,mixin)->
 obj [name] =名称方法,mixin方法
 对象

包括=(玻璃,混合)->
 扩展klass.prototype,mixin

#用法
包括鹦鹉
 isDeceased:是

(新鹦鹉)。已故

10-07 17:52