Javascript中的作用域问题

Javascript中的作用域问题,javascript,scope,global-variables,Javascript,Scope,Global Variables,我正在尝试用Javascript调试一个范围问题,这里肯定有一些东西我不明白。 如果有人能帮忙,我会很高兴的 在我在全局范围内声明的其他变量中: var mesh1_min, mesh1_max; 然后我在init()中使用它们 由于某种原因,当mesh1_min超出范围时,我就没有定义。 它一定与它超出范围有关,但为什么会这样,因为我在顶部将它定义为一个全局变量 谢谢。如果fetchStl是异步的,并且在运行该代码之前没有任何其他更改mesh1\u min的值,那么它应该仍然保持未定义状态。

我正在尝试用Javascript调试一个范围问题,这里肯定有一些东西我不明白。 如果有人能帮忙,我会很高兴的

在我在全局范围内声明的其他变量中:

var mesh1_min, mesh1_max;
然后我在init()中使用它们

由于某种原因,当mesh1_min超出范围时,我就没有定义。 它一定与它超出范围有关,但为什么会这样,因为我在顶部将它定义为一个全局变量


谢谢。

如果
fetchStl
是异步的,并且在运行该代码之前没有任何其他更改mesh1\u min的值,那么它应该仍然保持未定义状态。你知道情况是否如此吗?

这不是范围问题,而是时间问题。在回调函数运行之前,您正在调用
alert()
。它肯定是异步的。非常感谢你指出这一点,我没有想过。。我要参加一个地狱会议:-)
function init() {
    fetchStl('Octocat-v1.stl', function (stlBinary) {
      geometry1 = parseStlBinary(stlBinary);
      center(geometry1);
      mesh1BB = geometry1.computeBoundingBox();
      mesh1_min = geometry1.boundingBox.min;
      mesh1_max = geometry1.boundingBox.max;
    });
    alert(mesh1_min)
}