■吉里吉里/KAG/TJS雑談質問スレ■その17at GAMEDEV
■吉里吉里/KAG/TJS雑談質問スレ■その17 - 暇つぶし2ch992:名前は開発中のものです。
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;


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch