意図せず変数名が被るとスコープが広いほうになってしまって怖い.
これが,
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と書けるので安心できると思う.
ファイル単位でスコープが統一されるので,細かい単位でファイルを分けることを強制するために,こういう設計になってるのではないか,とか考えたけど,どうなんだろ.