所谓的js闭包就是在函数的外部能访问到函数内部变量:

function a() { 
 var i = 0; 
 function b() { 
  alert(++i);
}
return b; } var c = a(); c();

或者写成

function a() { 
 var i = 0; 
 return b() { 
  alert(++i); 
 } 
}
var c = a();
c();

这样定义的a函数的i变量对于a的子函数b来说依然是有效的,然后通过c=a(),这样就将b函数赋值给了全局变量c,那么调用c()的时候也就访问到了a的内部函数;

不过使用js闭包时虽然一定程度上访问了函数的内部变量,但如果访问完成后未注销掉变量会造成函数一直在内存中,影响性能,因此需要手动注销变量。

posted on 2016-06-24 16:36  程序员丁先生  阅读(176)  评论(0编辑  收藏  举报