我有一個函數名稱=「測試」。如何在知道函數名稱的類中調用函數?
如何在知道函數名稱的類中調用this.test()函數?
我猜我可以使用eval()函數,但那是行不通的?
如何在javascript中僅使用字符串名稱來調用類函數?
我有一個函數名稱=「測試」。如何在知道函數名稱的類中調用函數?
如何在知道函數名稱的類中調用this.test()函數?
我猜我可以使用eval()函數,但那是行不通的?
如何在javascript中僅使用字符串名稱來調用類函數?
使用括號表示法。
this["test"](/* args */);
或
name = "test";
this[name](/* args */);
調用的函數,就像沒有對象上下文中的普通功能,只需獲得對它的引用,並調用它。例如:
var name = "test";
var f = obj[name];
f(1, 2);
要調用它作爲對象的方法,得到的功能的基準然後使用call
方法來調用它來設置的上下文。例如:
var name = "test";
var f = obj[name];
f.call(obj, 1, 2);
如果是對象的一個方法中,可以使用的代替this
對象引用obj
我上面使用。
爲了讓您的代碼更加安全,我建議您檢查它是否爲函數。
var a='functionName'
if (typeof this[a]!='function')
alert('This is not a function')
else
this[a]()
你能提供一個代碼示例嗎? – emd
簡單''className ['methodeName']()' – vinayakj
call like:this [name](); – venkat7668