我有嵌套的回调函数如下:
func1(a, function(b){
var aa;
func2(c, function(d){
var cc;
func3(e, function(f){
var ee;
// setup event handler responding to the message
process.on('message',function(){
var g = b;
});
});
});
});
局部变量“g”引用顶级闭包参数“b”。
在这种情况下,
- 所有闭包变量和参数(aa,cc,ee,a,b,c,d,e,f)都保存在内存中吗?
- 还是只保留顶级闭包变量和参数(aa,a,b)?
下面的代码如何只保留 'b' 的值,而不是像上面的代码一样保留所有闭包环境变量?
var global_b;
func1(a, function(b){
global_b = b;
b = null; // free the parameter 'b'
func2(c, function(d){
func3(e, function(f){
// setup event handler responding to the message
process.on('message',function(){
var g = global_b;
});
});
});
});
提前感谢您的意见!