0

次のような命令を含む変数があります。

runThis= "alert(); if(1>2) { alert("NO WAY");}";

runThis 内でコードを実行するにはどうすればよいですか?

4

7 に答える 7

3
eval(runThis);

しかし、このようにコードを書くべきではありません。管理が困難です。

代わりにこのようにしてください:

runThis= function () {
  alert(); 
  if(1>2) { 
    alert("NO WAY");
  };
}

次に、runThisを呼び出します

于 2012-12-06T08:10:23.887 に答える
2

これを行うための汚い方法は

eval(runThis);

ただし、これはまったくお勧めしません。

または、関数でラップします

runThis = function(){ 
  // statements go here
}

そして、あなたはそれを呼び出すことができますrunThis();

于 2012-12-06T08:11:09.883 に答える
1

この種のことを本当にやりたい場合は、eval()関数を使用できます。

eval(runThis);

ただし、これは、あらゆる種類のバグやエラーの診断が困難になる可能性があるため、推奨されるアプローチではありません。

より良いアプローチは、実行したいコードを使用して適切な関数を記述し、それを変数に割り当てて、変数を介して呼び出すことです。

//Assign function to variable
runThis = function(){ 
  alert();
  if(1>2) {
    alert("NO WAY");
  };
}

//Later, invoke the function
runThis();
于 2012-12-06T08:10:30.263 に答える
0
code = "alert('test');";
eval(code);
于 2012-12-06T08:10:56.200 に答える
0

警告:これは恐ろしい習慣です!こんなことしないで!

eval(runThis);

内側の引用符を適切にエスケープしたら。

于 2012-12-06T08:10:56.630 に答える
0

eval(runThis);

しかし、それはお勧めできません。覚えておいてeval() is evilください。

于 2012-12-06T08:13:12.573 に答える
0

Eval は文字列を実行しますが、次のように run を定義したほうがよいでしょう。そして、他の関数と同じように呼び出します。

var runthis = function(){
     //code  here
}

しかし、文字列呼び出し eval を実行する必要がある場合。

eval(runthis);

于 2012-12-06T08:15:28.347 に答える