以前讲闭包,只能死记硬背,不能理解,这几天看到了阮一峰老师的闭包笔记,对闭包加深了理解,做个笔记
一、变量的作用域
var n = 90; function f1() { alert(n) } f1(); // 90
function f1() { var n = 90; } alert(n); // error
function f1() { var n = 90; function f2() { alert(n); } }
function f1() { var n = 999; function f2() { alert(n); } return f2; } var result = f1(); result(); // 999
三、闭包的概念
上面的f2函数,就是闭包,闭包是一个函数,能够读取其他函数内部变量的函数,闭包可以是函数内部和函数外部连接的一座桥梁。
function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000
参考连接:https://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
原文:https://www.cnblogs.com/yxfboke/p/12842834.html