eval メソッド (JScript)
更新 : 2007 年 11 月
JScript のコードを評価し、実行します。
function eval(codeString : String [, override : String])
引数
codeString
必ず指定します。有効な JScript コードを含む文字列を指定します。override
省略可能です。codeString のコードに適用するセキュリティ アクセス許可を決定する文字列を指定します。
解説
eval メソッドを使用すると、JScript ソース コードを動的に実行できます。
eval メソッドに渡されたコードは、eval メソッドを呼び出した場合と同じように実行されます。eval ステートメントで定義されている新しい変数またはデータ型は、外側のプログラムでは参照できません。
eval メソッドに渡されるコードは、文字列 "unsafe" が 2 番目のパラメータとして渡されていない限り、制限付きのセキュリティ コンテキストで実行されます。制限付きのセキュリティ コンテキストでは、ファイル システム、ネットワーク、ユーザー インターフェイスなどのシステム リソースへのアクセスが禁止されます。これらのリソースにアクセスしようとすると、セキュリティ例外が生成されます。
eval の 2 番目のパラメータが文字列 "unsafe" である場合、eval メソッドに渡されるコードは、呼び出し元のコードと同じセキュリティ コンテキストで実行されます。2 番目のパラメータの大文字と小文字は区別されるため、"Unsafe" または "UnSAfE" という文字列を指定しても、制限付きのセキュリティ コンテキストはオーバーライドされません。
セキュリティに関するメモ : |
---|
eval は、信頼できるソースから取得したコード文字列を実行する場合だけ、unsafe モードで使用してください。 |
使用例
たとえば、次のコードでは、doTest 変数の値に応じて、変数 mydate をテスト用の日付または現在の日付で初期化します。
var doTest : boolean = true;
var dateFn : String;
if(doTest)
dateFn = "Date(1971,3,8)";
else
dateFn = "Date()";
var mydate : Date;
eval("mydate = new "+dateFn+";");
print(mydate);
このプログラムの出力は次のようになります。
Thu Apr 8 00:00:00 PDT 1971