我想知道当函数引用自身(例如以下函数)时在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);
}