在严格模式下,间接调用eval
应该this
绑定到 eval 代码中的全局对象。
10.4.2:在第 5 版中,对 eval 函数的间接调用使用全局环境作为 eval 代码的变量环境和词法环境。在第 3 版中,间接评估的调用者的变量和词法环境被用作评估代码的环境。
然而,在 Opera 中,这个表达式的结果是undefined
:
(function(){'use strict'; return (0 || eval)('this'); }())
Chrome 和 Firefox 按预期工作。
我在这里找到了这个:http: //kangax.github.com/jstests/indirect-eval-testsuite/
这是浏览器错误吗?如果是这样,它是否正在被跟踪?