【发布时间】:2016-10-07 00:01:18
【问题描述】:
第一个代码
net.createServer(function(socket){
socket.on('data',function(id){
getUserDetails(function(){console.log(id)});
});
});
function getUserDetails(next){
next();
}
第二个代码
net.createServer(function(socket){
socket.on('data',function(id){
getUserDetails(function(){console.log(id)});
});
});
function getUserDetails(next){
console.log(id);
next();
}
第一个代码记录 id,而第二个代码给出错误。我知道 getUserDetails 无法访问 id 但传递给 getUserDetails 的回调如何访问 id?
【问题讨论】:
-
id不在第二个代码的范围内。它仅在socket.on的回调范围内 -
函数可以访问的变量是基于函数定义的位置,而不是调用的位置。
标签: javascript node.js closures