意図せず変数名が被るとスコープが広いほうになってしまって怖い.
これが,
foo = 'global' class classA constructor: -> foo = 'a' class classB constructor: -> foo = 'b'
こうなる.
var classA, classB, foo; foo = 'global'; classA = (function() { function classA() { foo = 'a'; } return classA; })(); classB = (function() { function classB() { foo = 'b'; } return classB; })();
コンパイル後のJavaScriptを見て正しい位置にvarが入ってることを確認しないと不安になる.
varって書くことができれば,classAの中でvar fooと書けるので安心できると思う.
ファイル単位でスコープが統一されるので,細かい単位でファイルを分けることを強制するために,こういう設計になってるのではないか,とか考えたけど,どうなんだろ.