【问题标题】:Function parameters or arguments in JavaScript/NodeJavaScript/Node 中的函数参数或实参
【发布时间】:2015-04-04 18:28:04
【问题描述】:

这是完整的代码-

function printDir() {

  var filter = fs.readdir(dir, function callback(err, list) {

    if (err) {

      console.log('an error has occured.');

    };

    list.forEach(function (file) {
      if (path.extname(file) === '.' + ext) {
        console.log(file);
      };
    });

  });
};

printDir();

好的,我很难理解(文件)部分是如何工作的。我已经在包括 MDN 在内的多个地方四处探访过,但我一定是脑子有问题,或者缺少一些有功能的东西。有人可以指出我的资源或基本上回答(文件)在做什么以及它来自哪里,大声笑,在下面(从上面) -

list.forEach(function (file) {
          if (path.extname(file) === '.' + ext) {
            console.log(file);

这是一个论点吗?范围?用户制作?内置在 JavaScript 核心中?谢谢!!

【问题讨论】:

    标签: node.js function parameters arguments


    【解决方案1】:

    file 是传递给 forEach 的函数的参数。以这种方式编写可能更容易推理:

    var logFiles = function (file) {
      if (path.extname(file) === '.' + ext) {
        console.log(file);
      };
    }
    
    list.forEach(logFiles); 
    

    【讨论】:

    • 谢谢!我对参数进行了一些阅读,并返回代码并将 (file) 更改为 (hotdog) 以查看它仍然有效。我没有意识到参数是如何工作的,发现这个再次感谢!!! 参数按值传递 函数调用中的参数是函数的参数。 JavaScript 参数是按值传递的:函数只知道值,而不是参数的位置。如果函数更改参数的值,它不会更改参数的原始值。对参数的更改在函数外部不可见(反映)。
    【解决方案2】:

    File 是通过 forEach 方法遍历列表时获得的文件对象。 list 来自 fs.readdir 调用的函数。

    将结果传递给回调函数的参数是 javascript 中非常常见的模式。

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多