我试着学习JavaScript,因此我尝试下面的代码:JavaScript回调没有改变范围?
function repeat(n, action) {
for (var i = 0; i < n; i++) {
action();
}
}
function benchmark() {
var start = [], end = [], timings = [];
repeat(1000, function() {
start.push(Date.now());
// Repeat something
end.push(Date.now());
});
for (var i = 0; i < end.length; i++) {
timings[i] = end[i] - start[i];
}
return timings;
}
我现在的问题:我为什么可以访问开始和结束在我的回调?据我了解,范围从基准改为重复。回调是闭包还是闭包在另一个函数中定义的命名函数?
谢谢!
http://stackoverflow.com/questions/111102/how-do-javascript-closures-work – Mik378
请阅读:http://stackoverflow.com/questions/111102/how-do-javascript-closures-work – Pawel
@Pawel可能重复我的评论;);) – Mik378