我有一个名为 front images 的数组,写为 var frontImages = [];
。据我了解,javascript 数组不需要指定的长度。当我运行下面的代码时,它在输出到控制台时打印 0 作为数组的长度。但是,当我将数组长度指定为 var frontImages = new Array(3); 时,它会打印出 3,即数组的正确长度。为什么未指定长度的数组不返回3?
function getMainPosters() {
var games = new Image(); //create 3 images
var apps = new Image();
var aboutme = new Image();
games.onload = function() { //add image to frontImages array on load
frontImages.push(games);
};
apps.onload = function() {
frontImages.push(apps);
};
aboutme.onload = function() {
frontImages.push(aboutme);
};
games.src = "images/assets/posters/games_poster.jpg"; //specify source of image
apps.src = "images/assets/posters/apps_poster.jpg";
aboutme.src = "images/assets/posters/aboutme_poster.jpg";
console.log(frontImages.length); //print the length of frontImages to console
}
最佳答案
您在执行 onload 函数之前将数组打印到控制台,而此时数组为空,因为您正在等待的图像尚未加载?
关于javascript - 为什么这个 javascript 数组打印出 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14989827/