Я играю с фантастической библиотекой Rickshaw, которая использует Prototype's class-based OOP system. Это включает в себя extend
метода, который позволяет подкласс расширить метод в родительском классе, как это:CoffeeScript: Расширение супер-метода, например, в Рикше Пример прототипа
defaults: function() {
return {
tension: 0.8,
// etc...
};
}
defaults: function($super) {
return Rickshaw.extend($super(), {
fill: true,
// etc...
});
}
Я пытаюсь найти синтаксис сделать то же самое в CoffeeScript, так что CoffeeScript обрабатывает наследование класса, а не Prototype. Вы можете помочь?
EDIT
Благодаря @ tomahaug Ответим я получил эту работу, и я уже понял, что это лучший способ. Хотя $super
особенность прототипа, 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.
Вы хотите перевести эти два примера в CoffeeScript или вы спрашиваете, может ли система CoffeeOp OScript сделать что-то подобное? – tomahaug
Я перевел его на CoffeeScript, и он работает в основном. Я просто пытаюсь с этим бороться. –