■吉里吉里/KAG/TJS雑談質問スレ■その17at GAMEDEV■吉里吉里/KAG/TJS雑談質問スレ■その17 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト992:名前は開発中のものです。 09/06/04 17:30:37 N3LAFxc/ >>991 吉里吉里には JavaScript のような変数を自前で巻き込むクロージャは無い。 自前でコンテキストを作ってやれば似たことはできる。 てっとりばやくその場処理したければ辞書を使う var func = [], i = 10; while(i--) func[i] = function { return i; } incontextof %[i:i]; Debug.message( func[4]() + ',' + func[5]() ); ただし、辞書のコンテキストはグローバルを自動的に参照してくれないので明示的な指定が必要になる。 × func[i] = function { Debug.message(i); } incontextof %[i:i] ○ func[i] = function { global.Debug.message(i); } incontextof %[i:i] それから、存在しない変数を参照しようとしても常に void が帰ってくるためエラーにならない。 func[i] = function { return a; } incontextof %[i:i] // a は存在してないけど void が帰るのでエラーにならない この挙動が嫌な場合はクラスを専用につくって対応すればいい class Func { var i; function Func(i) { this.i = i; } function func() { return i;} }; func[i] = (new Func(i)).func; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch