我正在玩奇妙的Rickshaw库,它使用Prototype 的基于类的 OOP 系统。这包括extend
允许子类扩展父类中的方法的方法,如下所示:
父类:
defaults: function() {
return {
tension: 0.8,
// etc...
};
}
子类:
defaults: function($super) {
return Rickshaw.extend( $super(), {
fill: true,
// etc...
} );
}
我试图在 CoffeeScript 中找到执行相同操作的语法,以便 CoffeeScript 处理类继承而不是原型。你能帮我吗?
编辑
感谢@tomahaug 的回答,我得到了这个工作,我现在意识到有更好的方法。While$super
是 Prototype 功能,extend
实际上在Prototype和Rickshaw顶级对象中都定义了,如下所示:
extend: (destination, source) ->
for property of source
if (source.hasOwnProperty(property))
destination[property] = source[property]
destination
因此,利用这种方法,解决方案如下所示:
defaults: () ->
Rickshaw.extend super(),
fill: true,
// etc...
所以唯一可以改进的方法是,如果它以某种方式内置在 CoffeeScript 中。