可能重复:
Javascript臭名昭著的循环问题?
我有以下代码:
function test() {
var columns = options.columns;
for (var i =0; i < columns.length; i++) {
if (columns[i].type === "number") {
var field = columns[i].field;
columns[i].footerTemplate = function(data) { return buildFooter(data, field); };
}
}
}
function buildFooter(data, field) {
alert(field);
}
一个库函数调用 footerTemplate 函数(该函数又调用 buildFooter)。buildFooter 中的警报指出该字段始终是相同的值(在 for 测试循环中迭代的最后一个值。)如何使用适当的字段值调用 buildFooter(即
columns[0].footerTemplate = function(data) { return buildFooter(data, columns[0].field);}
和
columns[1].footerTemplate = function(data) { return buildFooter(data, columns[1].field);}
等等...