2016-04-19 11 views
0

JavaScriptで関数名として値を使用できますか?はい私は行為が関数ではありません知っているが、私はVaRの行為を使用したい:私はエラー「行為は関数ではありませんキャッチされない例外TypeError」をしている、このようにJavaScriptで関数名としてvar value nameを使用する方法

var ta = $('li.ramin.active').attr("id"); 
var act = $('input[name="'+ta+'_acceptdeny"]:checked').val(); 


act(Freq, meID); // my question is 

:私は、同じ名前の入力値を持ついくつかの機能を持っています関数名としての値!!だから私はそれをどうやってできるのか知る必要がある?すべて

+0

「Freq」と「meID」は何ですか?それはあなたが何を求めているのか明確ではない –

+0

http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string – izzy

+0

あなたはそれをすることができますが、あなたはおそらく**そうすべきではありません。なぜあなたはそれをやりたいのか、より良いデザインのための答えを得ることを説明するようお勧めします。また、基本的な理解が不足しているように見えるので、JavaScriptをより徹底的に勉強すれば恩恵を受けることができます。 – Amit

答えて

0

のおかげであなたはactがグローバルスコープで定義されている場合にのみ動作します指摘してwindow[act](Freq, meId)

おかげJustin Niessnerを使用することができます。 evalを使用することができますが、これは一般的に非常に危険であると考えられています。

+0

これは、関数の定義方法によって異なります。これは動作しても動作しなくてもよい。 –

+0

ありがとうございました – CHARLI

+0

@CHARLIこれがうまくいけば、受け入れられたとマークしてください – slessans

0

最初に宣言された行為のすべての参照をその時点から失うことはありません。

0

値を関数名として使用する代わりに、関数をオブジェクトに格納し、その値をオブジェクトのキーとして使用します。

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オブジェクト内の関数を呼び出すことができます。

関連する問題