私は関数とその内容を文字列として持っています。JavaScriptを使用して作成された匿名関数eval()
var funcStr = "function() { alert('hello'); }";
は今、私は実際に変数にその関数を取得するためにeval()を行います。
var func = eval(funcStr);
私の記憶が正しければ、ChromeとOperaで、単に
func();
を呼び出すと、その関数を呼び出し、警告が表示されました。
しかし、他のブラウザではそうではありませんでした。何も起こらなかった。
どの方法が正しい方法であるかについての議論は望んでいませんが、どうすればいいですか?私はvariable()を呼び出すことができるようにしたい。その変数に格納されている関数を実行します。
名前付き関数を単に持つのではなく、文字列リテラルとして表される無名関数がなぜ必要なのでしょうか? –
FYI:私は自分のWebアプリケーションのための自分のスクリプトを定義しています。私はインタプリタを作成しており、その場でJS関数を構築してから実際に実行可能な関数を作成する必要があります。 –
伝統的な方法で通訳を書いてみませんか? – Breton