Javascript coffeescript,类未定义变量。
我不太理解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
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)