1
繼碼MDN for using files from web applications:爲什麼FileReader.onload處理程序中設置了自執行的函數
function handleFiles(files) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
var imageType = /image.*/;
if (!file.type.match(imageType)) {
continue;
}
var img = document.createElement("img");
img.classList.add("obj");
img.file = file;
preview.appendChild(img); // Assuming that "preview" is a the div output where the content will be displayed.
var reader = new FileReader();
reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img);
reader.readAsDataURL(file);
}
}
專注於這一行:
reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img);
什麼是自執行功能背後的原因是什麼?據我所知,IMG傳遞給函數和返回功能的方法中使用,但爲什麼他們不只是引用它,像這樣:
reader.onload = function(e) { img.src = e.target.result; };