[英]How to execute a JavaScript Function When I have its name as a string (with parameters that have an overload argument)
[英]how to execute javascript function when i send its name as string dynamically with out parameters
我想執行名稱動態作為字符串來的javascript函數。 Ansd我在執行功能時不需要傳遞任何參數。
請任何人指導我如何實現這一目標?
問候,卡梅什
一種簡單的方法
eval("SomeFunction()");
要么
var funcName = "SomeFunction";
var func == window[funcName];
func();
危險,但您可以使用eval(method_name+"()")
您在說“ eval()”嗎?
var foo = "alert('bar')";
eval(foo);
希望這可以幫助;
function a() { console.log('yeah!'); } var funcName = 'a'; // get function name this[funcName]();
如果該函數是全局函數,則應在瀏覽器中執行window[funcName]()
。
使用eval
是可想象的最糟糕的方法。 不惜一切代價避免這種情況。
您可以像這樣使用window[functionname]()
:
function myfunction() {
alert('test');
}
var functionname = 'myfunction';
window[functionname]();
這樣,您還可以選擇添加參數
也許更安全的方法是執行以下操作(僅在此處使用偽代碼):
function executer(functionName)
{
if (functionName === "blammo")
{
blammo();
}
else if (functionName === "kapow")
{
kapow();
}
else // unrecognized function name
{
// do something.
}
您可以為此使用switch語句(似乎是一種更好的構造):
switch (functionName)
{
case "blammo":
blammo();
break;
case "kapow":
kapow();
break;
default:
// unrecognized function name.
}
您可以通過創建一個函數名稱數組,在該數組中搜索所需的函數名稱,然后執行該數組中的值來優化此功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.