重複した JavaScript コードを削除しようとしています。私は多くのページを持っています<input type="file">
。それぞれが画像をロードし、いくつかの異なる処理を実行します。問題は、次のコードの重複が多いことです。
inputFile1.onchange = function (e) {
var file = e.target.files[0];
if (typeof file == 'undefined' || file == null) {
return;
}
var imageType = /image.*/;
if (!file.type.match(imageType)) {
window.alert('Bad file type!');
return;
}
var reader = new FileReader();
reader.onloadend = function (e) {
var imageLoader = new Image();
imageLoader.onload = function () {
// process image
};
imageLoader.src = e.target.result;
};
reader.readAsDataURL(file);
};
inputFile2.onchange = ... (repeats all but process image)
inputFile3.onchange = ... (repeats all but process image)
process image
コメントのコードのみが異なります。周囲の重複コードを削除するにはどうすればよいですか?
JavaScript 関数がオブジェクトであることは知っています。関数オブジェクトを定義し、イベント ハンドラーごとに 1 つの個別のインスタンスを作成してprocess image
、各オブジェクトに異なる関数を渡すにはどうすればよいですか?