是这里的范围发生了变化还是其他原因



我对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()像在第三个代码段的第二个代码段中那样执行?

window.onload 事件在加载完整的 DOM 时触发,因此在第三种情况下 example() 将在稍后运行,其他代码将更早运行。

重现了您的问题,可能是我不正确,但以下是我观察到的运行代码

myarray = [];
function example(){
  myarray.push(1);
}
$(window).load(function(){
  example();
});
setTimeout(function() {
    console.log(myarray);
},100);

如果您有其他东西,请回答您自己的问题...我有兴趣更深入地了解

相关内容