eval 方法
检查 JScript 代码并执行. eval(codeString)必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。说明
eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :eval("var mydate = new Date();");
传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样. 

解决方案 »

  1.   

    <body>
    <input type=text  id=card  onblur="test(this)" />
    <script language=javascript>
    function test(oText){
        res = oText.id;
        res1 = "oText."+"id"
        alert(eval("res1"));
        alert(eval("res"));
        alert(eval(res));
        alert(eval(res1));
    }
    </script>
    </body>
    oText.id //eval  处理函数 把 res1 当作字符串给alert了
    card //显示你自己定义的 res 也就是当前 的 id
    [objcet] // eval(str) 返回str属于什么类型 明显就是 object
    card //res1本身只字符串当作处理eval函数 处理返回card
      

  2.   

    eval中引号中的内容代表要处理的js变量名。
      

  3.   

    为什么    alert(eval(res));
    返回的是res的类型
    不明白这点
      

  4.   

    必选项 codestring 参数是包含有效 JScript 代码的字符串值。
    执行一下alert(eval(str))
    就是返回函数 object
    我晕
      

  5.   

    eval有返回值
    1.如果eval接受的参数是字符串,则返回字符串的解析结果
    2.如果参数不是字符串,则直接返回参数,所以第2个直接返回了你的文本对象Object
      

  6.   


    第2条我试了下,不是文本对象Object而是input这个控件的object,如果用alert(eval(res).id);可以看到是card,所以eval是个字符串处理函数,它解析的是字符串参数。
      

  7.   

    eval(res)效果和eval("card")是一样的...
      

  8.   

    我现在是这样理解的。不知道对不对。eval只能解析最外层双引号里的东西。
    比如eval("a")解析a里的结果。但是a里面的双引号不能解析的。只能当作字符串来处理。
    比如eval(a)。那他会直接解析a里的包括字符串的内容。假如连a里都找不到字符串。就返回函数的参数。也就是object。