作为params传入的函数-访问其他params

Functions passed in as params - access to other params?

本文关键字:params 访问 其他 函数 作为      更新时间:2023-09-26

我有以下功能:

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

我传入的callback函数是否可以访问其同级参数ext?我问是因为我在Node(使用模块)中得到一个错误,说:

未定义ext

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

感谢

您不能神奇地访问其他函数的参数,但您可以直接将它们传递给

function processFiles(path, ext, callback) {
    fs.readdir(path, function() {
        callback(ext);
    });
}
processFiles('path/file', extObject, function(ext) {
     // ext is defined
});

除了adeneo的想法被投票支持之外,当然,您还可以在所有函数的范围之外定义一个变量,比如

var myValue;

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

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

并且您可以在callback中使用myValue