闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。
直观的说就是形成一个不销毁的栈环境
举例1:
var datalist = ["a","b","c"] for (var i in datalist){ (function v1(data) { console.log(data); })(datalist[i]); }
举例2:
function f1(){ var i=999; Add=function(){i+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000