1、闭包生成数组元素
<script type="text/javascript">
//创建数组元素
var arr = new Array();
for(var i = 0; i < 4; i++){
arr[i] = f1(i);
}
function f1(n) {
function f2() {
console.log(n);
}
return f2;
}
arr[2]();
arr[0]();
arr[3]();
arr[1]();
</script>
效果图:
2、闭包事件的操作
<script type="text/javascript">
window.onload = function () {
var colors = document.getElementsByTagName('li');
for(var i = 0; i < 3; i++){
colors[i].onmouseover = over(i);
colors[i].onmouseout = out(i);
}
//闭包机制
function over(n) {
function f2() {
colors[n].style.backgroundColor = "pink";
}
return f2;
}
function out(n) {
function f2() {
colors[n].style.backgroundColor = "";
}
return f2;
}
}
</script>
效果图: