闭包
闭包指调用另一个函数作用域内的变量一个函数
作用为扩展函数内部变量作用范围,也用于处理异步函数造成的数据不同步,如点击事件,定时器,ajax等
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<ul>
<li>大佬救我</li>
<li>大佬救我</li>
<li>大佬救我</li>
<li>大佬救我</li>
<li>大佬救我</li>
</ul>
<script type="text/javascript">
var lis = document.getElementsByTagName('li');
// 打印序列号
for (var i = 0; i < lis.length; i++) {
lis[i].onclick = function() {
lis[i].index = i;
console.log(this.index);
// console.log(i);直接打印不行,for立即执行到i=4,onclick事件不会立即触发,需点击
}
}
// 采用闭包后可直接打印i为序列号
for (var i = 0; i < lis.length; i++) {
(function(i) {
lis[i].onclick = function() {
console.log(i);
}
})(i)
}
</script>
</body>
</html>

浙公网安备 33010602011771号