该博客不会更新,新博客地址:http://codecos.com/

流浪ㄎㄍ蜗牛

读历史、看小说、写程序都是我所爱。 技术不好,头脑不灵光,靠的是兴趣。

导航

使用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参数的方式),调用者无需知道调用的函数的名称,只要得到函数名字符串,即可调用,所以比较灵活。

posted on 2011-04-06 14:46  流浪ㄎㄍ蜗牛  阅读(510)  评论(0)    收藏  举报