2

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

class MenuController

  constructor: () ->
    'constructor'

  toString: () ->
    'MenuController'

console.log MenuController.toString()

然而toString()返回:

function MenuController() {
  'constructor';
}

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

4

1 回答 1

1

您定义toString为类方法。因此,您可以将其称为:

menuController = new MenuController()
menuController.toString()

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

class MenuController
  @toString: ->
    'MenuController'

然后,您将可以这样称呼它:

MenuController.toString()

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

(new MenuController()).toString()

不会调用你的toString方法。

于 2013-02-26T16:56:55.980 回答