我要疯了吗 - js 可以在范围内转发引用吗?
如果我是对的,这是 Firefox 22.0 中严重的范围错误吗?
if (true) {
test();
function test() {
alert("success");
}
}
上面的代码因 test() 未定义而失败。如果代码在 if 语句之外执行(或者如果只是函数定义被移到 if 语句之外??!?)那么一切都很好。在 do .. while 等其他范围内发生相同的错误(未定义)。
上面的代码在 IE 和 Chrome 等中运行良好!
*更新*
不确定期望能够做到这一点是愚蠢的还是不合理的(在 sudo 代码中当然在语义上是有意义的) - 但是 js 之神决定只有语句可以出现在这样的块中(如引用来自 basilikum 的 spidermonkey / ECMA stuff 的链接中所述) - 所以不是 - 特别是在浏览器处理不一致的情况下(如果不是在严格模式下)。谢谢大家。