node.js捕获闭包变量
node.js capture closure variables
我正在开发一个简单的调试函数,该函数评估闭包并获取node.js中所有相关变量的名称。它应该在运行时工作。那么,有没有一种方法可以自动捕获闭包中的所有变量名?例如,在以下情况下,是否有可能知道"b"、"c"answers"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"和所有的参数,但有没有本地函数可以找到它,或者有一个特殊的变量(类似于callee.vars)可以在闭包中找到变量名?
我知道"eval"是一个很大的否定,但我只是在开发环境中使用它。
是的。只需返回一个函数在c
上关闭,并为该关闭设置另一个var。就像这样。
function a(c){
var b = true;
return function () {
console.log(c);
};
}
var d = a(false); // undefined
d(); // false
相关文章:
- 子类访问父类's闭包变量
- 构造函数函数闭包变量
- 如何冻结函数's在闭包中的变量
- 使变量可用于不带闭包的异步调用
- 局部变量在闭包中丢失
- 其中是闭包中存储的变量-堆栈或堆
- javascript闭包:保护内部变量
- Javascript:附加字符串中的事件,闭包中的变量求值
- "可变变量可从闭包“”访问;在传递给Array.prototype.every的函数中
- JavaScript闭包和变量引用
- Javascript分析之谜 - 闭包变量
- 对闭包变量的更改是否在使用闭包的回调中可见
- 使用object.assign()添加到对象中的getter发现闭包变量的值错误
- Javascript:为什么对闭包变量的访问可能很慢
- 模块中未更新Nodejs闭包变量
- node.js捕获闭包变量
- Javascript中绑定闭包变量
- 函数外部的Javascript闭包变量访问
- 回调函数访问闭包变量
- 为什么我的闭包变量在使用$后被清除.每个都使用JSON数据