Hatena::Groupsubtech

#生存戦略 、それは

-> 07 { 10 / 20 }

Firefox (SpiderMonkey 1.5?) でリフレクション

05:47 | はてなブックマーク - Firefox (SpiderMonkey 1.5?) でリフレクション - #生存戦略 、それは

初めて使ったのでまとめてみる。get, set は使わなかったので書かない。

__noSuchMechod__

foo.bar() で bar なメソッドが無かったら呼び出される。Ruby で云う method_missing で Perl で云う AUTOLOAD で php で云う __call とほとんど同じヤツ。

しかし property が無かったら呼びだせるような機構が解らなかった…。なにかあるんだろうか。おしえて!え○いひと!

__defineGetter__, __defineSetter__

オブジェクトインスタンスがすでにある場合の getter/setter 定義。MDC に載ってる。

Core JavaScript 1.5 Guide:Creating New Objects:Defining Getters and Setters - MDC

すでに foo.a = 1; みたいに値がある場合、それを __defineGetter__, __defineSetter__ で上書きすると元の定義が消えてしまう。のでどこかに移すか、_a とかリネームしてやる必要がある。

__lookupGetter__, __lookupSetter__

getter/setter の定義があるかどうかを見て、あったらその関数を返してくれる。

関係ないけど、Firebug の Object DOM で列挙されないプロパティを作る方法ってあるんだろうか。


できてしまった

05:20 | はてなブックマーク - できてしまった - #生存戦略 、それは

どうするよ。ひさしぶりによるはっくでじゅうじつ。

もうちょい使い込んでこいつだけ切り出して google code に登録しようかな。あとで。

こうふん

01:47 | はてなブックマーク - こうふん - #生存戦略 、それは

これはすごいことになるかもしれない。というのをおもいつくとねれなくなるね。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20071020