次のような文字列として保存されている関数のリストがあります。
var act= "function () { alert() }";
アクトのタイプを「文字列」から「関数」に変更して、.call()できるようにする必要があります。私はこれで終わる必要があります:
act = function () { alert() };
これはどのように行うことができますか?
次のような文字列として保存されている関数のリストがあります。
var act= "function () { alert() }";
アクトのタイプを「文字列」から「関数」に変更して、.call()できるようにする必要があります。私はこれで終わる必要があります:
act = function () { alert() };
これはどのように行うことができますか?
これは、evalの使用が有効であるだけでなく正しい場合の数少ないケースの1つです。
var act = eval(function_string);
ただし、文字列に多数の関数があることは、設計が不適切であることを示していることに注意してください。それでも、必要な場合は、evalがその方法です。
これを試して:
var act = 'alert(5);';
act = new Function( act );
を使用できますがeval
、文字列のソースが不明な場合は特に安全でないと見なされます。そこにあるものを変数に実際に割り当てることはできません。eval
引数は式またはステートメントである必要があります。あなたはこのようなことをすることができます。
eval("var act = function () { alert('hey') }");
act();
私はあなたがevalでそれをしなければならないと思います。しかし、多くの人はそれを悪と見なします(安全なソースから文字列を取得するようにしてください)。
var act= "function () { alert() }";
eval ('act = '+ act)