我正在尝试在一个类中执行 setInterval,下面的代码可以正常工作,因为在创建汽车时会定期调用对其 updatePosition 的调用。
问题是我无法在 setInterval“范围”中获取 @currentSpeed 变量的值。相反,当间隔调用 updatePosition 函数时,我在 console.log 中得到“更新位置:速度:未定义”。
当我调用加速()函数(在我按下加速按钮时调用)它返回预期的@currentSpeed 值
如何在 setInterval 范围内从 @currentSpeed 获取值?
这是我的代码的相关部分:
class Car
constructor: () ->
@currentSpeed = 0
intervalMs = 1000
@.setUpdatePositionInterval(intervalMs)
setUpdatePositionInterval: (intervalMs) ->
setInterval (do => @updatePosition ), intervalMs
updatePosition: () ->
# below logs: "Updating position: Speed: undefined"
console.log("Updating position: Speed: #{@currentSpeed}")
accelerate: () ->
#below logs the expected value of @currentSpeed
console.log "ACCELERATING! CurrentSpeed: #{@currentSpeed}"