eval

王朝百科·作者佚名  2010-03-05  
宽屏版  字体: |||超大  

1.Eval方法

参数 :

codeString

必选。包含有效 JScript 代码的字符串。

override

可选项。确定要应用于 codeString 中代码的安全权限的字符串。

eval 函数允许动态执行 JScript 源代码。

传递给 eval 方法的代码执行时所在的上下文和调用 eval 方法时的上下文一样。请注意,在 eval 语句中定义的新变量或类型对于封闭程序是不可见的。

除非将字符串“unsafe”传递为第二个参数,否则,传递至 eval 方法的代码在受限安全上下文中执行。受限安全上下文禁止访问系统资源,如文件系统、网络或用户界面。如果代码试图访问这些资源,则会产生安全异常。

当 eval 的第二个参数为字符串“unsafe”时,传递给 eval 方法的代码在调用代码所在的安全上下文中执行。第二个参数是区分大小写的,因此,字符串“Unsafe”或“UnSAfE”不会重写受限安全上下文。

示例:

例如,下面的代码将变量 mydate 初始化为测试日期或当前日期,这取决于变量 doTest 的值:

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

2.在ActionScript 中 :

eval 函数

eval(expression:Object) : Object

eval(expression:String) : Object

按照名称访问变量、属性、对象或影片剪辑。如果表达式是变量或属性,则返回该变量或属

性的值。如果表达式是对象或影片剪辑,则返回对该对象或影片剪辑的引用。如果无法找到

表达式中列举的元素,则返回 undefined。

在 Flash 4 中,eval() 用于模拟数组;在 Flash 5 或更高版本中,您应该使用 Array 类来模

拟数组。

在 Flash 4 中,您还可以使用 eval() 动态地设置和检索变量值或实例名称。然而,也可以

使用数组访问运算符 ([]) 来实现这一点。

在 Flash5 或更高版本中,不能使用 eval() 动态设置和检索变量值或实例名称,因为不能在

等式的左侧使用 eval()。例如,将代码

eval ("var" + i) = "first";

替换为:

this["var"+i] = "first"

或者替换为:

set ("var" + i, "first");

可用性:Flash Player 5 ; ActionScript 1.0

2.Eval方法实例

例子 1在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果:

<script type="text/javascript">eval("x=10;y=20;document.write(x*y)")document.write(eval("2+2"))var x=10document.write(eval(x+17))</script>输出:

200427例子 2

看一下在其他情况中,eval() 返回的结果:

eval("2+3") // 返回 5var myeval = eval; // 可能会抛出 EvalError 异常myeval("2+3"); // 可能会抛出 EvalError 异常可以使用下面这段代码来检测 eval() 的参数是否合法:

try { alert("Result:" + eval(prompt("Enter an expression:",""))); }catch(exception) { alert(exception); }

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有