我在进行 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
我很困惑。我认为它应该输出↓,因为局部变量被 foo(2)
1 start
2 start
2
2
你们能告诉我为什么/如何 node.js 为内部回调函数访问保留局部变量吗?非常感谢!