学習のためだけに、 Function constructor でいくつかのテストを行っています)
だからここに話があります:
Function constructor
よりも好ましい方法であるように、変数をその名前で取得するために(jsbin)eval
を管理しましたregex
var my1Pattern=/\d/ig;
var my2Pattern=/\w/ig;
var my3Pattern=/\d+/ig;
var f=new Function( "return my"+3+"Pattern"); //3 or 2 or 1 , doesn't matter .
doWork(f()) //"[object RegExp]"
function doWork(r)
{
alert(Object.prototype.toString.apply(r))
}
ただし、数値をパラメーターとしてFunction ctor に送信する必要があります。
それで、私は置き換えてみました:( jsbin#2 )
var f=new Function("a", "return a")( "my"+5+"Pattern")
doWork(f)
しかし、それは警告し"string"
ます。(実際に文字列を送信しているため、これは正しいです)。
質問 :
パラメータを操作する最初のコードを取得するにはどうすればよいですか? Function constructor
つまり、関数コンストラクターにパラメーター/文字列として数値を送信できるようにしたいので、正規表現を返します。