[英]javascript function that refers to itself
我想知道當函數引用自身(例如以下函數)時在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);
}
解決方案1:您可以輸入兩個參數original_v和v。其中original_v不變且v改變。 在遞歸方法中,這樣做是很正常的。
解決方案2:制作包裝Clojure /函數。像這樣
function recursefolders(v){
var original_v = v;
recurseSubfolders(original_v);
function recurseSubfolders(v){
while (!f.end) {
if (f.filetype == "fold") {
var foldername;
foldername = f.pathname + f.filename
recurseSubfolders(foldername);
alert('This is the original variable' + original_v);
}
f.next();
}
f.close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.