Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox中未定义JavaScript函数?_Javascript_Debugging_Firefox_Error Handling - Fatal编程技术网

Firefox中未定义JavaScript函数?

Firefox中未定义JavaScript函数?,javascript,debugging,firefox,error-handling,Javascript,Debugging,Firefox,Error Handling,我目前正在用Firefox调试我网站的下一层,在我的JavaScript中发现了一个非常奇怪的bug。在Firefox中,函数需要在引用这些函数的任何代码行之上定义,这是真的吗?这对我来说真的很奇怪 下面是导致bug的原因的简化版本: 它引发了以下错误:错误:未定义myCallback 为了让它在Firefox中工作,我需要做以下几点: 所以我的问题是:这是正常行为还是发生了其他事情?我的意思是,将来编码时需要考虑这一点吗?在使用以下格式启动时,必须先定义函数,然后再调用它: myCallbac

我目前正在用Firefox调试我网站的下一层,在我的JavaScript中发现了一个非常奇怪的bug。在Firefox中,函数需要在引用这些函数的任何代码行之上定义,这是真的吗?这对我来说真的很奇怪

下面是导致bug的原因的简化版本: 它引发了以下错误:
错误:未定义myCallback

为了让它在Firefox中工作,我需要做以下几点:
所以我的问题是:这是正常行为还是发生了其他事情?我的意思是,将来编码时需要考虑这一点吗?

在使用以下格式启动时,必须先定义函数,然后再调用它:

myCallback = function() {
    // code
}
function myCallback() {
    // code
}
但是,当您使用以下格式启动时,可以在任何位置定义:

myCallback = function() {
    // code
}
function myCallback() {
    // code
}

这不会在FF 3.6中引发错误:-你确定你没有使用
var myCallback=function(){…}
?你引用的代码是在
if
块中还是什么?我支持Boris,我有同样的问题,因为我的函数在if中,并且因为它使用了在我设置回调后定义的变量,它必须在之后。乍看起来似乎是一个任意规则,但我期望的理由是,在第二种格式中定义的函数只定义一次,并在执行时进行预编译,但分配了函数的变量可能会发生变化,因此必须在分配后引用,在被称为FireFox之前,可能会进行多次交换/更改有一个我在其他任何地方都没有见过的: