JavaScriptで文字列からObjectのnew

eval以外になんか方法あるのかなー、とまららんに訪ねたところ教えてもらった。ブラウザ上に実装されてるJavaScriptなら

 new window['Foo'];

でFooオブジェクトをnewすることができる。これは定義してる関数(object)がwindowのメンバーとして定義されてるからできるんかなぁ。その辺全然理解して無い、、、pq。もちろん

 new windwo.Foo;

でも同じように作れるヨ。