<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var arr=[];
for( var i=0; i<5; i++) {
//存储函数
arr[i]= function() {
//打印索引值
document.write(i);
}
// document.write(arr[i]+"<br>");//arr[i]存储的是函数内容
}
document.write(arr[3]+"<br>");//arr[3]存储的是函数内容
arr[3]();/*输出的是5 for循环执行完后i是5,
而函数中的i会向上层去找*/
document.write("<br>");
</script>
<script type="text/javascript">
//让数组存储闭包函数
for ( var i=0; i<5; i++) {
arr[i] = function outer(i) {
return function inner() {
document.write(i);
}
}(i);
}
document.write(arr[2]+"<br>");//arr[]存储的是inner函数
//向上找i,而i是IIFE立即调用传下来的
arr[2]();//输出的是2
arr[3]();//输出的是3
</script>
</body>
</html>
<数组-数组与闭包>
最新推荐文章于 2021-02-23 16:33:57 发布