CoffeeScript变量范围

mah*_*off 2 coffeescript

有没有办法在"文件"范围内声明一个变量(它将被CS关闭),而不是初始化它?一个人为的例子:

init = ->
  counter = 0

inc = ->
  counter += 1
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为你需要声明"计数器".将"counter = 0"添加到顶部将使其工作,但"= 0"是不必要的.(一个更现实的例子会涉及在页面加载时访问DOM的东西 - 没有办法在"文件"范围内正确初始化它.)

log*_*yth 14

正如您所提到的,您必须在外部范围上定义它.

counter = null
init = ->
  counter = 0
inc = ->
  counter += 1
Run Code Online (Sandbox Code Playgroud)

  • +1.已经提出了shorthands,但jashkenas坚信`= null`语法. (5认同)