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