1
以下javascript在Chrome和IE中可用,但在Firefox中出错,因为bar在分配给callBar时未定义。跨浏览器的Javascript函数范围问题
那么谁的范围规则是正确的?
function foo() {
var callBar = bar;
if (1 === 1) {
callBar();
function bar() {
alert('yo');
}
}
}
foo();
虽然这是一个有趣的脑筋急转弯,你真的有这样的代码吗?函数(应该)被挂起,因此有条件地定义它们是没有意义的。 –