加单引号是做为字符串赋值给code.
通过eval来检查 JScript 代码并执行. 
用括号实际是将执行的代码变为'({a:2})'然后再执行。

解决方案 »

  1.   

    网上看的一种说法
    对于这种形式{a:2}的字符串,转成object的时候,不加小括号
    会被解释成运算符号  if(){},也就是转化不成object了所以想转化成object,要加个小括号
      

  2.   


    那么 alert(eval('(' + code + ')'));  //--> [object object] 
    这个结果 [object object]  是怎么出来的呢 为什么是[object object]
    也不是数组阿,怎么会有中括号[],为什么是两个呢
      

  3.   

    2楼讲的很清楚了~~~至于为什么是[object object] 是另外一个问题了..
    那是自定义对象toString()方法的默认输出...
      

  4.   

    alert()的参数应该是字符串,现在传入的是对象,js自动调用对象的toString()方法,该方法返回[object]字符串,和数组无无关。