将字符串评估为对象(javascript)

uza*_*y95 0 javascript

这是问题字符串:

$.ajax(......
   ,success:function(msg){
      var obj = eval('['+msg.d+']');
   },
   ....
}
Run Code Online (Sandbox Code Playgroud)

msg.d 包含类似的东西:

new Person(2, 'Name Surname','This is just string came from Par'is at Sat'urday');
Run Code Online (Sandbox Code Playgroud)

如何传递javascript问题?

T.J*_*der 5

如果字符串真的是你引用它,它有一个语法错误,将无法工作(它'在"星期六"一词中有错误).否则,虽然,改变括号([])在您的eval通话圆括号(()):

var obj = eval('('+msg.d+')');
Run Code Online (Sandbox Code Playgroud)

但是,几乎从来没有必要这样做(或者实际上根本不需要eval).几乎总是可能的,并且可取的是稍微重构并避免它.

如果这是您的代码的文字引用,请参阅下面的dvhh的答案,您的函数参数name(msg.d)无效.