Вы просите функцию setTimeout оценить "this.runShow()"
, и setTimeout сделает это в контексте window
.Это означает, что this
является объектом window
при оценке этого кода.
Чтобы избежать этого, вы можете создать функцию и связать ее с текущим контекстом, чтобы каждый раз вызывать функцию, this
- это то же самое, что и при создании функции.
В сценарии кофе вы можете сделать это с помощью =>
:
func = =>
this.runShow()
setTimeout(func, 2000)
Или наодна строка:
setTimeout((=> this.runShow()), 2000)
как я могу ссылаться на t из другой функции?
Сделать t
свойством вашего объекта:
class Something
t: null
runShow: ->
...
this.t = ...
otherFunction: ->
t = this.t