我想通過使用mixin拆分一個大類。在Coffeescript中使用mixins
我用這混入代碼從Little Book
@include: (obj) ->
for key, value of obj when key not in moduleKeywords
# Assign properties to the prototype
@::[key] = value
obj.included?.apply(@)
this
class FooMixin
b: => @something = 2
class Foo extends Module
@include FooMixin
a: => @something = 1
問題是,在@
是。我希望它是Foo
。
我曾嘗試在@include()
的末尾添加_.bind(@::[key], @)
行,但它沒有幫助。有什麼建議麼?
對於任何可能使用backbone.js(或underscore.js)的人來說,已經有一個方法在模型上定義了一個名爲['extend'](http://backbonejs.org/#Model-extend)的方法這將與這裏描述的相沖突。如果你發現你遇到了各種各樣的問題,請嘗試將它重命名爲其他內容 - 這對我有用。 –