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と色付きの画像が読み込まれ、引数を渡すimgBlackWhiteと白黒の画像が読み込まれます。これはオブジェクトimgColorであるためです。imgBlackWhite

imgColorオブジェクトへの参照とimgBlackWhite、の文字列の値からの参照を作成するにはどうすればよいthis.options.typeですか?

4

2 に答える 2

1

ifステートメントを使用しないのはなぜですか?

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

編集:新しいwindowtypenameを使用してオブジェクトをインスタンス化することもできます(このスレッドごとに:文字列を使用してJavaScriptオブジェクトをインスタンス化してクラス名を定義します)。したがって、上記の代わりに:

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

引数を渡します:

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