Можно ли использовать собственные конструкторы javascript/coffeescript с фреймворком webOS Enyo?

Инфраструктура Palm Enyo использует DSL-подобную систему «Kind» для создания объектов на основе прототипов. К сожалению, это приводит, как мне кажется, к более неряшливому коду.

Есть ли у кого-нибудь опыт использования/взлома Enyo с прототипами/конструкторами нативного javascript?

enyo.kind
  name:  'SimpleTimer'
  kind: "RowGroup"
  caption: "Simple Timer"
  published:
    timerDuration: 30

vs…

class SimpleTimer extends RowGroup
  caption: "SimpleTimer"
  published:
    timerDuration: 30

Надеясь узнать, сделал ли кто-нибудь еще это.


person arbales    schedule 27.07.2011    source источник


Ответы (3)


Не Enyo, но что-то связанное, вы можете заглянуть в Jo, если вам нужен этот стиль кодирования. Вот оболочка Coffeescript для него, которую я видел вчера:

http://k33g.github.com/2011/08/14/JO-COFFEESCRIPT.html

Джо работает в webOS с PhoneGap, поддерживает 1.x-3.x, а также другие платформы. Ваше здоровье.

person davebalmer    schedule 16.08.2011

Я пытался сделать то же самое, что и вы, используя другой метод скомпилированного Javascript (Haxe JS).

Я смог заставить это работать... расширяя такие виды, как базовые классы, но мне пришлось обернуть структуру в свои собственные файлы, чтобы заставить ее работать. Я не желаю этого никому, но не стесняйтесь взглянуть на то, что у меня работает:

http://www.joshuagranick.com/blog/2011/08/08/enyo-with-code-completion-yes/

Хорошего дня!

person Joshua Granick    schedule 16.08.2011

В качестве альтернативы вы можете использовать более функциональный, а не объектно-ориентированный стиль. Может быть, что-то вроде:

simpleTimer = (timerDuration) ->
  new RowGroup  caption: 'Simple Timer', timerDuration: timerDuration

И затем вместо создания таймера, выполнив

new SimpleTimer timerDuration:99

ты можешь сделать

simpleTimer 99
person Eamonn O'Brien-Strain    schedule 14.12.2012
comment
Я понимаю, что не ответил на ваш вопрос, вместо этого я обратился к более широкому вопросу о том, нужен ли вам объектно-ориентированный код, и к проблеме неопрятности, которую вы упомянули. Я считаю, что использование Coffeescript является естественным соответствием функциональному стилю кода. Я думаю, что во многих контекстах мой пример функционального кода можно было бы использовать вместо любой из двух объектно-ориентированных альтернатив в вопросе, и он намного короче и ИМХО менее неопрятный. - person Eamonn O'Brien-Strain; 23.01.2013