У меня есть некоторые проблемы с рамкой @
ключевого слова в анонимной функцииCoffeeScript объем @ ключевое слово в классе
(это не то, что происходит, но мне это нужно для моего примера)
createArray = (fun) -> fun()
это пример класса
class Example
stuff: []
otherStuff: createArray ->
@stuff
в @
указывает на window
(я полагаю). Поэтому я рассмотрел это и вспомнил fat arrow, чтобы создать функцию генератора.
Я попробовал этот
class Example
stuff: []
otherStuff: createArray =>
@stuff
но это даже не компилируются в function(_this) { ...}(this)
. Поэтому я начал все обматывать в генераторах
class Example
stuff: []
otherStuff: =>
createArray ->
@stuff
...
otherStuff: =>
stuff = @stuff
createArray ->
stuff
...
otherStuff: ((stuff) ->
createArray ->
stuff
)(@stuff) #this is the one that upsets me the most because it compiles to Example.stuff and not to Example.prototype.stuff
, но ни один из них не работает.
Перед тем, как перейти на простой function
вместо class
, есть ли способ достичь того, что я хочу?
Я хочу, чтобы результат 'createArray' связанного с' @ otherStuff' во время создания класса, поэтому я пытался создать самостоятельно выполняя функцию. – fra9001
Ну, во время создания класса, этого еще нет ... так ... это несколько невозможно. – deceze