我不太了解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()
初始化程序在实例化类之后由初始化程序调用它的输出:
calc : undefined trade_class_new.js?body=1:8
Uncaught TypeError: Cannot call method 'updateFields' of undefined
我不明白coffeescript中实例变量的语法是怎样的。
谢谢,
答案 0 :(得分:2)
您需要将Controller
构造函数更改为:
constructor: (@calc) ->
否则它只是采用calc
参数并且不执行任何操作。
答案 1 :(得分:1)
控制器构造函数需要(@calc)而不是(calc)