2006年 10月 22日

obj.eval

obj.eval の挙動が気になるのでちょっと見てみた。仕様的には非推奨みたいなやつ (というかどこで言及されてるのが謎) だけど……

Fx1.5

obj = {}; obj.eval("a = 1"); obj.toSource()
//=> "({})"
obj = {}; obj.eval("var a = 1"); obj.toSource()
//=> "({a:1})"
obj = {}; obj.eval("this");
//=> [Window]

Global オブジェクトは変化させない (変化させると思ってた)。this も変化しない。VariableObject が obj になるだけ?
Global が変わらないなら別にその obj で閉じた環境ができるわけじゃないだなぁ。