Coffeescript-使用函数重新分配上限变量

Coffeescript-使用函数重新分配上限变量,coffeescript,Coffeescript,编译成 fun=-> views = [] views = 123 fun() console.log views 和日志123,而我希望它返回[] 在fun之前声明views将产生所需的结果,但我的代码风格要求我首先声明所有函数,然后分配变量。 在这种情况下可以做什么?特别是我希望coffeescript不产生var视图在javascript内部fun如果您想fun了解外部视图,那么您必须在fun之前定义视图: var fun, views; fun = functio

编译成

fun=->
    views = []
views = 123
fun()
console.log views
和日志
123
,而我希望它返回
[]

fun
之前声明
views
将产生所需的结果,但我的代码风格要求我首先声明所有函数,然后分配变量。

在这种情况下可以做什么?特别是我希望coffeescript不产生
var视图在javascript内部
fun
如果您想
fun
了解外部
视图
,那么您必须在
fun
之前定义
视图

  var fun, views;
  fun = function() {
    var views;
    return views = [];
  };
  views = 123;
  fun();
  console.log(views);

另一种可能——虽然有点复杂——是使用类并将函数和fun函数绑定到类范围

views = 123
fun = ->
    views = []

这在某些情况下非常不方便=(其他情况也是如此。也许您应该使用一个类来将函数和变量保持在一起,而不是尝试范围欺骗。
class muchFun
    views: 123
    fun: =>
        @views = []
        return

soMuchFun = new muchFun()
console.log( soMuchFun.views )
soMuchFun.fun()
console.log( soMuchFun.views )