前言:
现时兄弟们对“闭包closure”大致比较看重,姐妹们都需要分析一些“闭包closure”的相关资讯。那么小编也在网摘上搜集了一些对于“闭包closure””的相关资讯,希望各位老铁们能喜欢,同学们一起来了解一下吧!要理解Javascript中的闭包首先要要理解Java中的变量作用域,变量的作用域无非就是两种:全局变量和局部变量。
全局变量:
var n=999; //此时的n是全局变量 function f1(){ alert(n); } f1(); // 999
局部变量:
function f1(){ // 此时的n是局部变量 var n=999; }// alert函数无法访问到f1函数的局部变量报错alert(n);闭包的产生,当函数f1的内部函数f2,访问了f1函数的局部变量n,就产生了一个闭包。看下面的例子
function f1(){ // 局部变量n被f2函数访问产生闭包 var n=999; function f2(){ n+=1; alert(n); } return f2; } //1)f1函数执行完返回了f2函数, //2)f2函数即是一个函数同时也是一个对象, //3)f2持有f1函数对象的局部变量n并且没有被回收从而产生闭包现象 //返回f2是一个函数 var result= f1(); result(); // 1000 result(); // 1001
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #闭包closure