はい、私は評価が悪であることを知っていますが...
いくつかの異なる方法で文字列から関数が作成されているのを見たことがあります。
var s = "function fname() { this.m = function(s){alert(s);}}";
//1
var x = new( eval("("+s+")") );
x.m("aaa")
//2
var x = new( eval('[' + s + ']')[0] );
x.m("bbb")
//3
var x = new ( eval(s + " fname;") );
x.m("ccc")
最初の2つは私には明らかですが、3つ目については疑問に思います。関数の定義の後に関数の名前を追加すると、evalがその仕事をするのにどのように役立つかを誰かが説明できますか?また、evalを使用して関数を作成する他の方法を知っていますか?
ありがとうSzymon