Functionコンストラクタの遅さ

関数式と関数宣言で定義された関数は一度しか解析されませんが、Function コンストラクタで定義された関数はそうではありません。
つまり、Function コンストラクタに渡された関数本体を表す文字列が、評価されるたびに必ず解析されます。
関数式は毎回クロージャを作成しますが、関数本体は再解析されないので、"new Function(...)" よりは関数式の方がまだ高速です。
したがって Function コンストラクタはできる限り避けるべきでしょう。

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Functions

どのくらい遅くなるのか試してみた

a = new Function("x","return x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x");
b = function(x){return x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x;};

function test(f){
  t = new Date();
  for(i=0;i<999999;i++) f(1);
  return new Date() - t + 'ms';
}

手元のマシン+Firefox3での実行結果

test(a) 7562ms
test(b) 7532ms

あまり変わらない。なんかやり方間違ってるかな…