Prototype のクラスベースの OOP システムを使用する素晴らしいRickshawライブラリで遊んでいます。これには、サブクラスが次のように親クラスのメソッドを拡張できるようにするメソッドが含まれます。extend
親クラス:
defaults: function() {
return {
tension: 0.8,
// etc...
};
}
defaults: function($super) {
return Rickshaw.extend( $super(), {
fill: true,
// etc...
} );
}
CoffeeScript で同じことを行うための構文を見つけようとしているので、CoffeeScript はプロトタイプではなくクラスの継承を処理します。手伝ってくれますか?
編集
@tomahaug の回答のおかげで、これが機能するようになりました。より良い方法があることに気付きました。While$super
はプロトタイプ機能ですextend
が、実際にはプロトタイプと人力車のトップレベル オブジェクトの両方で次のように定義されています。
extend: (destination, source) ->
for property of source
if (source.hasOwnProperty(property))
destination[property] = source[property]
destination
したがって、この方法を使用すると、ソリューションは次のようになります。
defaults: () ->
Rickshaw.extend super(),
fill: true,
// etc...
したがって、これを別のステップで改善できる唯一の方法は、これが何らかの方法で CoffeeScript に組み込まれていることが判明した場合です。