簡體   English   中英

如何在JavaScript中使用var值名稱作為函數名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM