闭包是什么?
如果某个函数可以访问到外层函数作用域里面的变量,我们就称这个内层函数叫做闭包函数。
实际开发中闭包的应用案例:
// 闭包实际应用中主要用于封装变量,收敛权限
function isFirstLoad(){
var _list = [];
return function(id){
if(_list.indexOf(id) >= 0){
return false;
}else{
_list.push(id);
return true;
}
}
}
// 使用
var firstLoad = isFirstLoad();
firstLoad(1); // true
firstLoad(1); // false
firstLoad(2); // true
firstLoad(2); // false
// 你在 isFirstLoad 函数外面,根本不可能修改掉 _list 的值
本文没有长篇大论,只有这么一个小案例,自己动手敲一遍好好理解一下,闭包的精髓get到了没?❤️