在内部Javascript回调函数中访问父函数参数的正确方法

时间:2014-11-08 06:38:52

标签: 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。访问passData是否正确执行此操作,如果同时处理多个函数调用,是否会覆盖,或者是否有办法将信息附加到回调函数中以便与之绑定?

1 个答案:

答案 0 :(得分:1)

来自@ jfriend00:

  

您可以直接访问'passedData'。它在父范围内   在回调中你完全可以访问它。每个功能   call创建一个新的范围,从而创建一组新的数据   多个函数调用不会弄乱它

另请参阅:MDN Closures

[注意:标记为社区维基,因为这主要是来自其他人的评论等,我没有声称积分。随意编辑和改进]