Node.js 之在回调中实现闭包

function logCar(logMsg,callback){
    process.nextTick(function(){
        callback(logMsg);
    });
}

var cars = ["Fettari","Porsche","Bugatti"];

for(var idx in cars){
    var message = "Saw a " + cars[idx];
    logCar(message, function(){
        console.log("Normal Callback: " + message);
    });
}

for(var idx in cars){
    var message = "Saw a " + cars[idx];
    (function(msg){
        logCar(msg,function(){
            console.log("Closure Callback: " + msg);
        });
    })(message);
}
  

执行结果:

Normal Callback: Saw a Bugatti
Normal Callback: Saw a Bugatti
Normal Callback: Saw a Bugatti
Closure Callback: Saw a Fettari
Closure Callback: Saw a Porsche
Closure Callback: Saw a Bugatti