我想知道当函数引用自身(例如以下函数)时在javascript中称为什么。

此功能用于递归浏览硬盘驱动器上的文件夹。 v变量是原始文件,“文件夹”对象只是文件夹/文件的列表/数组。

我想知道,如何保留原始v变量?每当函数运行(本身)时,它都会不断变化,因此我无法访问启动函数的原始变量。

function recursefolders(v){
    var f = new Folder(v);
    while (!f.end) {
        if (f.filetype == "fold") {
            var foldername;
            foldername =  f.pathname + f.filename
            recursefolders(foldername);
alert('This is the original variable' + v);

        }
        f.next();
    }
    f.close();
}

最佳答案

您可以使用闭包捕获v

function recursefolders(v) {
  var capturedV = v;

  function folderTraversal(v) {
    var f = new Folder(v);
    while (!f.end) {
      if (f.filetype == "fold") {
        var foldername;
        foldername = f.pathname + f.filename
        folderTraversal(foldername);
        alert('This is the original variable' + capturedV);
      }
      f.next();
    }
    f.close();
  }

  folderTraversal(v);
}

10-06 11:38