0
请参阅以下代码片段。在内部Javascript回调函数中访问父函数参数的正确方法
var exec = require('child_process').exec;
var extraInfo = {'test':1,'passing':'test'};
runWithData(extraInfo);
function runWithData(passedData)
{
exec('/Users/test/Desktop/testcommand', function callback(error,stdout,stderr)
{
if (error)
{
console.log("ERROR",stderr);
}
else
{
console.log(stdout);
}
});
}
在exec的回调中,我希望能够访问passedData。是否正在访问passedData直接执行此操作的正确方法,并且如果同时处理多个函数调用会覆盖它,还是有办法将信息附加到回调函数中,以便将它绑定到它?
这将有助于:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Closures – techfoobar 2014-11-08 06:41:03
您可以直接访问'passedData'。这是在回调中完全可以访问的父范围内。每个函数调用都会创建一个新的作用域,从而创建一组新的数据,因此多个函数调用不会混淆。 – jfriend00 2014-11-08 06:51:01
谢谢,这是有道理的 – 2014-11-08 07:51:30