coffeescript,类undefined变量。

时间:2013-12-11 12:14:21

标签: javascript class coffeescript

我不太了解coffeescript中用于定义实例变量的语法。

这是我的方案:我有一个初始化程序和两个类CalculationsController,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()

初始化程序在实例化类之后由初始化程序调用它的输出:

calc : undefined trade_class_new.js?body=1:8
Uncaught TypeError: Cannot call method 'updateFields' of undefined

我不明白coffeescript中实例变量的语法是怎样的。

谢谢,

2 个答案:

答案 0 :(得分:2)

您需要将Controller构造函数更改为:

constructor: (@calc) ->

否则它只是采用calc参数并且不执行任何操作。

答案 1 :(得分:1)

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