闭包
作者:
洛洛kkkkkk | 来源:发表于
2017-04-18 19:45 被阅读0次<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
div{
width: 200px;
height: 200px;
background-color: red;
float: left;
margin: 20px;
font-size: 100px;
line-height: 200px;
text-align: center;
color: white;
}
</style>
</head>
<body>
<div class="div1">1</div>
<div class="div2">2</div>
<div class="div3">3</div>
<div class="div4">4</div>
<div class="div5">5</div>
</body>
<script type="text/javascript">
var divs=document.querySelectorAll("div");
for(var i=0;i<divs.length;i++){
function click(num) {
divs[i].onclick=function () {
console.log(num);
}
}
click(i);
}
//闭包。函数内部的函数就是闭包
//1、通过闭包可以访问函数内部的局部变量
//根据闭包可以保存当时函数内部局部变量的值得特性,可以使用下面这种方式来解决点击DIV的
// 时候I始终为5这种情况
function test1 (num) {
var j=num;
console.log("1的值"+j);
function test2 () {
console.log(j);
}
return test2;
}
// var fn = test1();
// fn();
//2、每次访问tset1得到的test2是不一样的函数。
//两个test2不一样,意味着,他们的空间不是同一块内存空间。
var fn2 = test1(100);
fn2();
var fn3 = test1(200);
//fn2和fn3是两个不同的函数,里面的j虽然都是引用的test1里面的J值,但是他们都不是同一个变量
//fn2,fn3各自在自己的内部空间储存了原来的J值
fn2();
// console.log(fn2===fn3);
</script>
</html>
本文标题:闭包
本文链接:https://www.haomeiwen.com/subject/oeeqzttx.html
网友评论