范围是在这里改变还是其他的?

时间:2015-01-06 11:23:16

标签: javascript arrays variables scope

我对JavaScript很缺乏经验,所以我真的不知道我做错了什么。

这非常有效:

myarray = [];

myarray.push(1);

这也非常有效:

myarray = [];

function example(){
  myarray.push(1);
}

example();

这根本不起作用:

myarray = [];

function example(){
  myarray.push(1);
}

$(window).load(function(){
  example();
});

我是否使用$(window).load(function(){...更改范围或其他内容?

如何使example()像第三段代码段中的第二段一样执行?

1 个答案:

答案 0 :(得分:1)

当加载完整的DOM时会触发

window.onload事件,因此在第三种情况下,example()将在稍后运行,其他代码将在之前运行。

我重现了你的问题,可能是我不正确,但下面是我所观察到的正在运行的代码

myarray = [];

function example(){
  myarray.push(1);
}

$(window).load(function(){

  example();
});

setTimeout(function() {
    console.log(myarray);
},100);

如果你有别的东西请回答你自己的问题...我有兴趣深入了解