最近,我曾问一个问题功能类型转换的JavaScript
我需要以编程方式访问一个按钮,曾与PARAM的沿函数调用的onclick ATTRIB它然后提供一个额外的PARAM &使函数调用(onclick=doSomething(2,4)
)。
但是当我弄清楚,使用apply/call
也可以来得心应手地提供额外param's.For这个我从它有一个字符串像
arr[1] = 'doSomething';
我试过属性&提取的函数名称使用函数构造函数将此视为一个函数,但它不起作用 (如Function(arr[1])
)为什么?
提到的解决方案Javascript: interpret string as object reference?工作正常。但为什么不能通过函数构造函数来实现呢?
某些代码信息
var funDef ='doSomething'; // this is the name of real function defined in the script
var funcName = new Function(funDef); //expected it to return reference of function doSomething,shows function anonymous() in console
var funcArgs = [5,7,10];
funcName.apply('',funcArgs); //this is the function call.
在这种情况下功能不会被调用,直到我更换
var funcName = new Function(funDef); with var funcName = eval(funDef);
感谢。
'new Function'构造函数的工作方式与'eval()'类似。所以'new Function(arr [1] +“()”);'可能会工作。 –
做一个小提琴.... – Rayon
@NiettheDarkAbsol如何传递额外的参数呢? –