学习闭包的历程:
才起步:闭包是什么?能吃吗?不知道不清楚不明白不了解没听过;
刚接触:哇,这是什么鬼,网上一搜‘闭包是js的一大难点’、‘闭包太难了’、‘怎么才能学会闭包’;
没多久:哦,闭包是一个封闭的作用域,不能被浏览器的垃圾回收机制处理;
看了书:闭包是一个函数被传递到本身的词法作用域外执行,且能访问本身的词法作用域;
问大佬:闭包是符合了一定条件的函数,引用了其他位置的变量、包括局部变量,函数可以被外部使用;
深理解:...还没到这一步...
var outNum = 1; // 外部变量
function a() {
var insideNum = 2; // 局部变量
function b(outNum) {
console.log(outNum + insideNum);
}
return b;
}
var c = a();
c(outNum); // 3
// 查看outNum和insideNum
console.log(outNum) // 1
console.log(insideNum);// insideNum is not defined
PS:要说为啥才起步不问大佬,因为.....你自己都不知道这是个什么..怎么问..
又PS:仅为个人理解,如有错误,请指正~