全局数组值会丢失功能范围之外的数据

时间:2013-01-31 23:01:40

标签: javascript

为什么会这样,它只在函数范围内工作,而我在全局声明它

testing = [];

function func1(){
  //some codes here that fills the "testing" array... 
}
//I want to display here the new array values.. 

JSFiddle

上观看

  1. 点击按钮
  2. 检查元素输出
  3. 控制台上的
  4.   

    我需要在另一个函数上使用“testing”数组。我将如何使用它   然后?

  5.   

2 个答案:

答案 0 :(得分:1)

console.log("outside function scope :\n"+testing);被调用后,您的数组会被填充

忽略你的jsfiddle中的所有问题,你没有看到你期望的行为的原因是因为导致数组被填充的事件是异步的,其中在范围之外显示它的代码立即被执行。 / p>

答案 1 :(得分:1)

请注意消息在控制台中的显示顺序。页面加载时:

outside function scope :

点击按钮后:

inside function scope :
RSdKmX2BH7o,EWMLMc3ES3I,SIXwlxhjaKY,RIKTFn5ALE8,acp8TbBPVos,6GpKR4-TLoI,XLKLkTnKRwg,6WPELkw5kD0

任何功能范围之外的代码在加载页面后立即运行,但填充testing的代码仅在单击按钮后运行。