覆盖CoffeeScript类中的toString

时间:2013-02-26 15:55:39

标签: coffeescript

我在CoffeeScript上创建了一个类,我想覆盖toString()函数;这是我的代码:

class MenuController

  constructor: () ->
    'constructor'

  toString: () ->
    'MenuController'

console.log MenuController.toString()

但是toString()会返回:

function MenuController() {
  'constructor';
}

而不是MenuController。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您将toString定义为类方法。所以,你可以把它称为:

menuController = new MenuController()
menuController.toString()

如果静态方法确实是您想要的,那么您应该使用以下语法:

class MenuController
  @toString: ->
    'MenuController'

然后,您可以将其称为:

MenuController.toString()

但是,它将不再是类方法,所以

(new MenuController()).toString()

不会调用您的toString方法。