0

我在我的 javascript 文件顶部预加载了两个不同的图像。

var imgColor = new Image();
var imgLoadedColor = false;
imgColor.src = 'color/progress.png';

imgColor.onload = function(){
  imgLoadedColor = true;
}   

var imgBlackWhite = new Image();
var imgLoadedColor = false;
imgBlackWhite.src = 'blackWhite/progress.png';

imgBlackWhite.onload = function(){
  imgLoadedColor = true;
}   

中的字符串this.options.typeimgColoror imgBlackWhite

当我尝试将参数传递this.options.type给函数时,我收到一个错误,因为 in 的值this.options.type是一个字符串,而不是一个对象。但是,如果我传递参数imgColor,它会加载彩色图像,如果我传递参数imgBlackWhite,它会加载黑白图像,因为imgColorimgBlackWhite是对象。

如何创建对对象的引用imgColor以及imgBlackWhite从 in 中字符串的值this.options.type

4

2 回答 2

1

为什么不直接使用 if 语句?

if (arg == "imgColor") return imgColor;
else return imgBlackWhite;

编辑:您还可以使用新的 windowtypename 来实例化一个对象(根据这个线程:Instantiate a JavaScript Object Using a String to Define the Class Name)。所以,而不是上面的:

return new window[arg]();
于 2012-04-08T23:55:33.773 回答
0

传递参数:

this[this.options.type]
于 2012-04-09T00:01:10.713 回答