2011-06-08 31 views
0

我是javascript中的新手,是什么让我在Javascript中的操作顺序如此混乱。如何确保在java脚本中的所有其他代码之前执行某段代码?

让想我有下面的代码:

var myArray = []; 
function getArray(x){ 
var _array = []; 
.... {the code here is pretty big} 
return _array; 
} 
myArray = getArray(1); 

和代码的其余部分都是基于myArray的。不幸的是,使用此代码有时myArray没有及时设置,所以其余代码无法正常工作。无论如何,我可以确保在myArray设置正确时执行其余代码?

谢谢,

埃米尔。

+1

它应该是这样工作的 – Ibu 2011-06-08 23:14:39

+0

首先写这篇文章? – Bastardo 2011-06-08 23:17:49

+0

不是您的问题的答案,但相关。数组作为指针传递给大多数语言的第一个元素,包括js。试试这个'function getArray(x,myArray){;} var myArray = []; getArray(1,myArray)'。当然,这取决于你的口味。 – Ben 2011-06-08 23:31:41

回答

3

将它放在js文件或html的顶部,然后放在任何其他javascript之前,它将首先执行。这假定你没有用setTimeout或jQuery的文档就绪功能来延迟某种延迟。

JS在网页浏览器加载时执行,所以它的出现顺序决定了它相对于其他JS执行的顺序。

+0

为我工作...谢谢! – Amir 2011-06-08 23:59:13

1
> var myArray = []; 

javascript处理有两个阶段:第一个处理所有的声明,第二个处理所有的声明,第二个处理代码。因此,不管myArray是在哪里声明的,它将在任何代码执行之前声明。

当代码执行开始时,语句按顺序执行,因此myArray在执行下面的代码之前被分配一个空数组。

> function getArray(x) { 
> var _array = []; .... 
> // the code here is pretty big 
>  return _array; 
> } 

同样,的getArray运行任何代码之前也将被限定。

> myArray = getArray(1); 

这将替换分配给上述myArray的与任何由的getArray返回的数组。

如果,不时的myArray的值是不是您所期望的,那么它是什么正在被的getArray返回的结果,所以我会专注于这一点。

相关问题