passing encapsulated functions
by John Allan
JavaScript
function service(callback) {
setTimeout(function () {
callback('response: success')
}, parseInt(Math.random() * 100, 10));
}
function handleResponse(g, data) {
console.log(g, data);
}
function callService(guid) {
var responseHandler = (function (guid) {
return function (data) {
handleResponse(guid, data);
}
}(guid));
service(responseHandler);
}
callService('guid: 1');
callService('guid: 2');
callService('guid: 3');