Javascript coffeescript,类未定义变量。

Javascript coffeescript,类未定义变量。,javascript,class,coffeescript,Javascript,Class,Coffeescript,我不太理解coffeescript中定义实例变量的语法 下面是我的场景:我有一个初始值设定项和两个类,Calculations和Controller,Controller在内部使用一个计算实例 代码如下: 初始化程序块 $ -> calc = new Calculations() log "initcalc: #{calc}" tc = new Controller(calc) tc.initForm() 日志正确打印的位置:initcalc:[object object

我不太理解coffeescript中定义实例变量的语法

下面是我的场景:我有一个初始值设定项和两个类,
Calculations
Controller
,Controller在内部使用一个计算实例

代码如下:

初始化程序块

$ ->
  calc = new Calculations()
  log "initcalc: #{calc}"
  tc = new Controller(calc)
  tc.initForm()
日志正确打印的位置:
initcalc:[object object]

等级计算定义如下:

class Calculations
  constructor: ->
  updateFields: -> 
    log "updateFields"
类控制器定义为:

class Controller
  constructor: (calc) ->
  initForm: -> 
    log "calc : #{@calc}"
    @calc.updateFields()
初始化器在实例化类之后立即调用init表单,其输出如下:

calc : undefined trade_class_new.js?body=1:8
Uncaught TypeError: Cannot call method 'updateFields' of undefined
我不明白coffeescript中实例变量的语法是什么


谢谢,

您需要将
控制器
构造函数更改为:

constructor: (@calc) ->

否则,它只是获取一个
calc
参数,而不进行任何处理。

您需要将
控制器的构造函数更改为:

constructor: (@calc) ->

否则,它只是获取一个
calc
参数,而不进行任何处理。

您需要将
控制器的构造函数更改为:

constructor: (@calc) ->

否则,它只是获取一个
calc
参数,而不进行任何处理。

您需要将
控制器的构造函数更改为:

constructor: (@calc) ->

否则,它只是获取一个
calc
参数,而不做任何处理。

控制器构造函数需要是(@calc)而不是(calc)

控制器构造函数需要是(@calc)而不是(calc)

控制器构造函数需要是(@calc)而不是(calc)

控制器构造函数需要是(@calc)而不是(calc)

(@calc)而不是(calc)