作为params传递的函数 - 访问其他参数?

时间:2014-09-09 10:45:28

标签: javascript scope

我有以下功能:

function processFiles(path, ext, callback) {
    fs.readdir(path, callback);
}

我是否可以通过callback函数访问其同级参数ext?我问,因为我在Node中遇到错误(使用模块)说:

  

ext未定义

回调使用位于我创建的模块中的success()函数。

由于

2 个答案:

答案 0 :(得分:2)

你不能神奇地从其他函数访问参数,但你可以传递它们

function processFiles(path, ext, callback) {
    fs.readdir(path, function() {
        callback(ext);
    });
}

processFiles('path/file', extObject, function(ext) {

     // ext is defined

});

答案 1 :(得分:0)

除了adeneo的想法之外,当然,你可以定义一个超出所有功能范围的变量,比如

var myValue;

然后您可以修改processFiles,如下所示:

function processFiles(path, ext, callback) {
    myValue = ext;
    fs.readdir(path, callback);
}

您可以在myValue中使用callback