[英]how to use var value name as function name in JavaScript
大家好,我可以在JavaScript中使用value作為函數名稱嗎? 我有一些具有相同名稱輸入值的函數,例如:
var ta = $('li.ramin.active').attr("id");
var act = $('input[name="'+ta+'_acceptdeny"]:checked').val();
act(Freq, meID); // my question is
這樣我有錯誤“未捕獲的TypeError:行為不是函數”是的,我知道行為不是函數,但是我想使用var act值作為函數名! 所以我需要知道我該怎么做? 謝謝大家
您可以使用window[act](Freq, meId)
感謝Justin Niessner指出,只有在全局范圍內定義了act
,此方法才有效。 您可以使用eval
,但是,通常認為這是非常不安全的。
沒有什么可以阻止您將行為重新聲明為函數,從此以后,您將丟失對初始聲明的行為的所有引用。
不要將值用作函數名,而是將函數放入對象中,然后將值用作對象的鍵。
var myFunctions = {
'func1': function() { .... },
'func2': function() { .... },
// and so on
};
var ta = $('li.ramin.active').attr("id");
var act = $('input[name="'+ta+'_acceptdeny"]:checked').val();
myFunctions[act](Freq, meID);
這樣比較好,因為您不能偶然調用應用程序不打算使用的函數,它只能調用myFunctions
對象中的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.