我有一个问题,当我做node.js异步编码。 下面是示例代码:node.js保留局部变量的功能,为什么?
function foo(arg) {
var a = arg;
console.log(a + ' start');
setTimeout(function() {console.log(a);}, 500);
};
foo(1);
foo(2);
它输出:
1 start
2 start
1
2
我感到困惑。我认为应该输出↓,因为局部变量是由富变(2)
1 start
2 start
2
2
难道你们,请告诉我为什么/如何node.js的保持局部变量的内部回调函数访问? 非常感谢!
您正在寻找的概念是[闭包](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work)。 – geekosaur 2012-04-09 12:19:14