我有一段代码,尤其是一个返回函数数组的函数。问题是当我在此数组中调用函数时,结果始终为NaN,而应为有效数字。可能与范围有关?
var arr = [ Math.random(), Math.random(), Math.random(), Math.random() ];
var square = function (x) { return x * x; };
function makeSquareFns(arr, square) {
var fns = [];
for (var i = 0, l = arr.length; i < l; i++) {
fns.push(function() {
return square(arr[i]);
});
}
return fns;
}
var funcs = makeSquareFns(arr, square);
console.log(funcs[0]()); // IT RETURNS NaN