我正在用 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
参数?
换句话说,我希望能够将一个数字作为参数/字符串发送到函数构造函数,因此它将返回正则表达式。