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:是
(新鹦鹉)。已故