我无法在onload函数中同时获取filereader的结果和一些参数。这是我的代码:
控件的HTML:
<input type="file" id="files_input" multiple/>
Javascript函数:
function openFiles(evt){
var files = evt.target.files;
for (var i = 0; i < files.length; i++) {
var file=files[i];
reader = new FileReader();
reader.onload = function(){
var data = $.csv.toArrays(this.result,{separator:'\t'});
};
reader.readAsText(file);
}
}
添加事件:
files_input.addEventListener("change", openFiles, false);
我在onload
函数中使用filereader.result
。如果我给这个函数传递一个参数,比如文件,我将无法再访问结果。例如,我想在onload
函数中使用file.name
,该如何解决这个问题?
for
、in
和其他类似的语句内部声明它们,因为这些语句不会创建闭包,因此声明的变量不是该语句的本地变量。这将帮助您确定何时需要创建额外的闭包。 - hon2a