次のような命令を含む変数があります。
runThis= "alert(); if(1>2) { alert("NO WAY");}";
runThis 内でコードを実行するにはどうすればよいですか?
次のような命令を含む変数があります。
runThis= "alert(); if(1>2) { alert("NO WAY");}";
runThis 内でコードを実行するにはどうすればよいですか?
eval(runThis);
しかし、このようにコードを書くべきではありません。管理が困難です。
代わりにこのようにしてください:
runThis= function () {
alert();
if(1>2) {
alert("NO WAY");
};
}
次に、runThisを呼び出します
これを行うための汚い方法は
eval(runThis);
ただし、これはまったくお勧めしません。
または、関数でラップします
runThis = function(){
// statements go here
}
そして、あなたはそれを呼び出すことができますrunThis();
この種のことを本当にやりたい場合は、eval()関数を使用できます。
eval(runThis);
ただし、これは、あらゆる種類のバグやエラーの診断が困難になる可能性があるため、推奨されるアプローチではありません。
より良いアプローチは、実行したいコードを使用して適切な関数を記述し、それを変数に割り当てて、変数を介して呼び出すことです。
//Assign function to variable
runThis = function(){
alert();
if(1>2) {
alert("NO WAY");
};
}
//Later, invoke the function
runThis();
code = "alert('test');";
eval(code);
警告:これは恐ろしい習慣です!こんなことしないで!
eval(runThis);
内側の引用符を適切にエスケープしたら。
eval(runThis);
しかし、それはお勧めできません。覚えておいてeval() is evil
ください。
Eval は文字列を実行しますが、次のように run を定義したほうがよいでしょう。そして、他の関数と同じように呼び出します。
var runthis = function(){
//code here
}
しかし、文字列呼び出し eval を実行する必要がある場合。
eval(runthis);