function decode(json){
         return eval("("+json+")");
     }        var obj='{id:\"1\",text:\"测试\"}';
alert(decode(obj));
for(var x in decode(obj)){
alert(x+"|"+decode(obj)[x]);
}decode函数的作用是把一个规定格式的字符串转换为对象,我想问下eval("("+json+")")的原理,如“(”的作用?

解决方案 »

  1.   

    http://www.4x255.com/Webcontrol/javascripts/Index.html现成的,文章里讲了原理,我看过,你去找下看了就明白了,不难
      

  2.   

    eval的作用就是将传递进来的字符串,调用JavaScript解释器执行,至于为什么要多加两个括号,就不太明白了,看有没有高人。
      

  3.   

    <script>
    var a = "{showmsg:function(o){alert(o)}}";
    var b = eval("("+a+")");
    b.showmsg('hello,world!');(function(){alert('这里的括号返回一个匿名对象,只有返回对象才能继续操作!')})();
    </script>