使用eval参数进行JS函数调用
使用JS 中的eval函数,可以将JS字符串作为JS表达式进行执行。
将下列JS代码保存为1.js
1 function f(num,callback){
2 // eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
3 eval(callback+"('" + num + "')");
4 }
再定义一个test.html,保存到和1.js相同的目录
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
3 <html>
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
6 <script src="1.js" type="text/javascript"></script>
7 <title>无标题文档</title>
8 <script type="text/javascript">
9 function dosome(num){
10 if(num<60) alert("未及格!");
11 else if(num<=90) alert("该生成绩优良!");
12 else alert("该生成绩优秀!");
13 }
14
15 function test(){
16 var num=document.getElementById("score").value;
17 f(num,"dosome");
18 }
19 </script>
20 </head>
21
22 <body>
23 <p>
24 eval示例:
25 </p>
26 请输入学生成绩<input type="text" id="score">
27 <input type="button" onClick="test()" value=" 看看结果">
28 </body>
29 </html>
然后打开test.html,可以看到我们调用了传过去的dosome()函数,使用eval函数必须保证字符串表示的JS表达式,在当前页面有效。
我们可以通过帧的方式来用eval执行任意可访问的帧的JS代码。也可以通过打开子窗体的方式,是父窗体和子窗体的JS代码能够相互调用,
而且我们只要传入函数名字符串(无论何种方式,不如通过url参数的方式),调用者无需知道调用的函数的名称,只要得到函数名字符串,即可调用,所以比较灵活。
浙公网安备 33010602011771号