日期:2014-05-17  浏览次数:20376 次

js中的函数问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>综合练习6-1</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function Button1_onclick()
{
  try
  {
  var cmdWin = document.getElementById("TextArea1"); // 获取文本框的引用
  var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:'+e.description);}";// 构造函数体
  var cmd = new Function(str); // 构造函数
  cmd(); // 调用函数
  }
  catch(e)  
  {
  alert("错误:"+e.description); // 输出错误信息
  }
}
// ]]>
</script>
</head>
<body>
<!--用户界面,一文本框,一按钮-->
  <div align="center" style="border-right: #000000 1px solid; border-top: #000000 1px solid; border-left: #000000 1px solid;
  width: 618px; border-bottom: #000000 1px solid; height: 336px; background-color: #ffffff">
  <textarea id="TextArea1" style="width: 612px; height: 300px"></textarea>
  <input id="Button2" type="button" value="执行程序" onclick="return Button1_onclick()" style="width: 145px" /></div>
</body>
</html>

高手解释一下以下代码什么意思?怎样实现的?
 var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:'+e.description);}";// 构造函数体
  var cmd = new Function(str); // 构造函数
  cmd(); // 调用函数

------解决方案--------------------
var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:'+e.description);}";// 构造函数体
var cmd = new Function(str); // 构造函数
cmd(); // 调用函数

cmd是由Function对象动态创建的一个js函数,它的函数体是变量中str的内容,最终解释为:
 var cmd=function(){
try{
//TextArea1元素里输入的内容,也做为函数体语句来执行

}catch(e){
//......其它内容
}