coffeescript,类未定义变量

coffeescript, class undefined variable.

本文关键字:变量 未定义 coffeescript      更新时间:2023-09-26

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

这是我的场景:我有一个初始化器和两个类,CalculationsController,Controller在内部使用Calculations的实例。

这是代码:

初始化程序块

$ ->
  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中实例变量的语法如何。

谢谢,

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

constructor: (@calc) ->

否则,它只是获取一个calc参数,而对它不做任何操作。

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