最近,我曾問一個問題功能類型轉換的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如何傳遞額外的參數呢? –