我正在尝试删除重复的 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 函数是对象。如何定义函数对象并为每个事件处理程序创建一个不同的实例,为process image
每个对象传递不同的函数?