2012-04-08 5 views
0

私は、javascriptファイルの先頭に2つの異なる画像を読み込みます。文字列をオブジェクトに変換する方法は?

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.type内の文字列はimgColorimgBlackWhiteのいずれかです。

引数にthis.options.typeを渡そうとすると、this.options.typeの値がオブジェクトではなく文字列であるため、エラーが発生します。しかし、引数imgColorを渡すと、カラー画像がロードされ、引数を渡すと、imgColorimgBlackWhiteがオブジェクトなので、白黒画像がロードされます。

imgColorimgBlackWhiteの参照を、文字列の値this.options.typeから作成するにはどうすればよいですか?

+1

より多くのコードが必要です。 'this.options.type'を渡す関数はどのように見えますか? – Loktar

答えて

1

なぜif文を使用しないのですか?

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

EDIT:あなたも(このスレッドあたり:Instantiate a JavaScript Object Using a String to Define the Class Name)オブジェクトをインスタンス化する新しいwindowtypenameを使用することができます。だから、代わりに上記の:

return new window[arg](); 
0

は、引数を渡す:

this[this.options.type] 
関連する問題