簡體   English   中英

node.js捕獲閉包變量

[英]node.js capture closure variables

我正在研究一個簡單的調試函數,該函數評估閉包並在node.js中獲取所有相關的變量名稱。 它應該在運行時工作。 那么,有沒有一種方法可以自動捕獲閉包中的所有變量名? 例如,在以下情況下是否可以知道“ b”,“ c”和“ d”變量的存在?

var d=3;
function a(c){ 
   var b = true;
   eval( debug(/* need to access in runtime something like ["b","c","d"] */) );

}
function debug(vars){ 
   var txt = "";
   for(var i=0; i<vars.length; loop++){
      txt+="console.log('"+vars[i]+":' + " vars[i] + ");"
   }
   return txt
}

我可以使用蠻力掃描a.toString()來搜索所有“ var”和所有arguments參數,但是是否有本地函數可以找到它或使用特殊變量(如callee。vars )來找到變量名稱在關閉?

我知道“評估”是一個很大的限制,但我只是在開發環境中使用它。

就在這里。 只需返回一個函數以關閉c並為該關閉設置另一個var。 像這樣。

 function a(c){ var b = true; return function () { console.log(c); }; } var d = a(false); // undefined d(); // false 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM