Потеря функций класса Coffeescript - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть CoffeeScript, с которого я не могу вызывать функции.Но если я объявляю его экземпляр и добавляю к нему функции, он работает.Чего мне не хватает?

Функция не вызывается:

  class testClass 
    username: 'Fred'

    this.testFunction = ()->
      alert 'test'

  test = new testClass

  test.testFunction()   

Функция работает:

  class testClass 
    username: 'Fred'

  test = new testClass

  test.testFunction = ()->
    alert 'test'

  test.testFunction()

Ответы [ 2 ]

4 голосов
/ 26 сентября 2011

В теле class, this указывает на сам класс, а не на его прототип. То, что вы хотите, это

class testClass 
  username: 'Fred'

  testFunction: ->
    alert 'test'

Запись this.testFunction =, с другой стороны, создает testClass.testFunction.

1 голос
/ 26 сентября 2011

Попробуйте

 class testClass 
    username: 'Fred'
    testFunction: ()->
      alert 'test'

  test = new testClass

  test.testFunction()   

Coffeescript имеет классы в качестве концепции первого уровня;this.testfunction = не так.Вы должны просто определить его как поле типа function.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...