Chrome - eval - 功能()

时间:2011-05-12 14:07:16

标签: function google-chrome eval

为什么Chrome会抛出

SyntaxError: Unexpected token (

当我试着打电话时:

eval("function(){alert('test')}")

2 个答案:

答案 0 :(得分:10)

Chrome正在抛出SyntaxError,因为您需要在函数周围使用()或者需要命名它。

//This defines a as the function
eval("function a(){alert('foo')}");

//This returns the anonymous function
eval("(function(){alert('foo')})");

要么应该正常工作。

答案 1 :(得分:1)

奇怪的是,Safari 5.1和Chrome 13.0.782.220在匿名函数的这种特殊情况下确实需要外部的parens。我不知道为什么,因为没有parens而不是表达,表达不再含糊不清或有用。没有parens,Firefox 6.0.2非常高兴。

有没有人知道Javascript语言规范是否指定了这些外部问题,以及它们是否对匿名函数以外的情况是必要的?