昔にactionscriptの変数のスコープがfunctionスコープということを知らずに凄いハマったことがあって
それ以来は気をつけてはいたんですが、どうやらブロックスコープを実現できるみたいなので試してみた。
結論から言うと、withを使う。
actionscirpt1のころからwithの存在を知ってはいたけどコード量を短くする以外に使い道もわからなく
そんなに困ることもなく存在すら忘れ去れそうになっていましたw
でも、この子は非常に優秀です。できる子でした。
perlでいうlocalみたいなことができるんです。
素晴らしすぎます。今まで知らなかったことが残念で仕方ありません。
actionscript、javascript共に試したコードをつるしときます。
ver FlashIDE
1
2
3
4
5
6
7
8
9
10
11
var hoge:Number = 8;
trace("default:" + hoge); // 8
(function():void {
var hoge:Number = 10;
trace("function:" + hoge); // 10
})();
with( {hoge:1} ) [...]
