代码语言:javascript复制
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button>我是按钮1</button>
<button>我是按钮2</button>
<button>我是按钮3</button>
<script type="text/javascript">
/*
在ES6中如果在循环中通过let定义的变量, 那么这个变量是一个局部变量
*/
/*var list=[];
for(var i=0;i<3;i )
{
var fn=function test()
{
console.log(i);
}
list.push(fn);
}
list[0]();
list[1]();
list[2]();*/
//不是闭包,执行完循环在执行函数
/* var list=[];
for(let i=0;i<3;i )
{
var fn=function test()
{
console.log(i);
}
list.push(fn);
}
list[0]();
list[1]();
list[2]();*/
// 注意点: 在ES6中由于{}是块级作用域, 所以只要在块级作用域中定义了一个函数
// 并且这个函数中用到了块级作用域中的数据, 那么这个函数就是闭包
// 是闭包,保存着每一次循环的值,找相对应的值就行了
</script>
</body>
</html>