1.简单原理
闭包是间接性的扩大了变量的使用范围,内部函数可以访问外部函数的变量;
简单原理代码实例:
function fn() {
var a = 1;
return function fun() {
console.log(a)
}
}
var f = fn();
f();
经典案例应用
<body> <!-- 需求:点击第几个li,打印出对应的索引 --> <ul> <li>第1个li</li> <li>第2个li</li> <li>第3个li</li> <li>第4个li</li> </ul> <script> var lis = document.querySelector('ul').querySelectorAll('li') for (var i = 0; i < lis.length; i++) { (function(i) { lis[i].onclick = function() { console.log(i) } })(i) } </script> </body>