fun=->
views = []
views = 123
fun()
console.log views
编译为
var fun, views;
fun = function() {
var views;
return views = [];
};
views = 123;
fun();
console.log(views);
并记录123
,而我希望它返回[]
.
在fun
之前声明views
会产生所需的结果,但我的代码风格要求我首先声明所有函数,然后分配变量。
在这种情况下可以做什么?特别是我希望 coffeescript 不会在 fun
内部的 javascript 中产生var views;
。
另一种可能性 - 虽然更复杂 - 是使用类并将函数和有趣的函数绑定到类范围。
class muchFun
views: 123
fun: =>
@views = []
return
soMuchFun = new muchFun()
console.log( soMuchFun.views )
soMuchFun.fun()
console.log( soMuchFun.views )
如果你想
让fun
了解外部views
那么你必须在fun
之前定义views
:
views = 123
fun = ->
views = []