我想通过使用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)的方法这将与这里描述的相冲突。如果你发现你遇到了各种各样的问题,请尝试将它重命名为其他内容 - 这对我有用。 –