- 最近看到吕大豹的游戏教程,看到加载图片函数,略有不解,便搜索一番
// 图片加载器
function ImageMonitor(){
var imgArray = [];
return {
createImage : function(src){ // 因为数组 继承自 Object 所以数组也能用 字符串作为下标
return typeof imgArray[src] != 'undefined' ? imgArray[src] : (imgArray[src] = new Image(), imgArray[src].src = src, imgArray[src]);
},
// 加载图片
loadImage : function(arr, callback){
for(var i=0,l=arr.length; i<l; i++){
var img = arr[i];
imgArray[img] = new Image();
imgArray[img].onload = function(){
if(i==l-1 && typeof callback=='function'){
callback();
}
}
imgArray[img].src = img
}
}
}
}
因为数组继承自Object,所以数组能够以字符串下标方式存储数据,但是,以字符串下标创建元素,数组长度是不会增加的。
javascript数组是关联数组,实质是对象,以test['test1']=1;方式增加数组元素,将不改变数组的长度length, 元素以属性方式存储。