1

我试图将一个值传递给 CoffeeScript 类的构造函数,但没有成功:

class A

  constructor: () ->

    @b = new B('FOO')


class B

  constructor: (@value) ->

  printValue: () =>
    console.log @value


当我从 B 的实例调用 printValue 时,控制台中会记录“未定义”。为什么没有记录“FOO”?

更新

我应该提到 A 类实例是在第三个 C 类中创建的,如下所示:

class C

  constructor: () ->

    @a = new A()


所有三个类都在不同的文件中,并按照 C 在 A 上在 C 上的顺序连接在一起。

4

1 回答 1

2

当我这样做时,它工作得很好:

class B
  constructor: (@value) ->
  printValue: () -> alert @value

b = new B "foo"
b.printValue()

我猜你有一个空格缩进问题发生。由于 CoffeeScript 对空格敏感,因此您的制表符/间距需要在同一块内保持一致。

转到http://coffeescript.org/并选择“尝试 Coffeescript”。将其粘贴并按“运行”。

或者,考虑创建一个显示此问题的 JSFiddle,因为我没有看到问题。

于 2013-02-24T13:39:41.160 回答