CoffeeScript范围:在单个文件中共享函数之间的变量

时间:2014-11-05 05:19:15

标签: coffeescript scope

通常更好的做法是:

$ ->
  $('.thing-one').on 'click', ->
    window.myVar = 1

  $('.thing-two').on 'click', ->
    console.log window.myVar

...或

$ ->
  myVar = 0

  $('.thing-one').on 'click', ->
    myVar = 1

  $('.thing-two').on 'click', ->
    console.log myVar

1 个答案:

答案 0 :(得分:0)

$ ->
  @myVar = 0

  $('.thing-one').on 'click', =>
    @myVar = 1

  $('.thing-two').on 'click', =>
    console.log @myVar

因为动态范围是在窗口级别,所以您不需要声明它。 thiswindow个对象。但是,您必须在执行回调时绑定上下文,如=>所示。这样做会保留你的动态范围。如果你选择直接将它放在窗口上以避免上下文,只需使用一个好的命名空间。 Coffeescript让事情变得简单:

window.someNameSpace ?= {}
someNameSpace.myVar = 0