« flash8エフェクト軽量化メモ | main | 一定の範囲の値しかとらない変数の宣言方法 »

2006年02月05日

クロージャにプロパティをセットする???

Flash(というかJavaScript)では、functionはオブジェクトの一種です。
なので、ひょっとしたら関数にプロパティが定義できるんじゃないかと思って、実験してみた。

var hoge = function(){ trace(arguments.callee.prop) }
hoge.prop = "hogehoge"
hoge()

ちゃんと実行すると 、関数hoge内でhogeに定義したプロパティpropにアクセスでき、"hogehoge" って表示される。
trace文内でのarguments.calleeという記述は、関数自身への参照。つまり"arguments.callee.prop"は自身のプロパティpropにアクセスしてる

これうまく使うとクロージャとかで、色々と面白いことができるなじゃいかと思うんだけどどうだろ。

投稿者 Taka : 2006年02月05日 13:01

book

dotfla.gif

bookmark

はてなブックマークに追加

del.icio.usに追加

trackbacks

this entry's trackback URL:
http://www.fladdict.net/cgi-bin/mt3/mt-tb.cgi/454

comment

コメントしてください




保存しますか?