<!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>
闭包
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 闭包介绍 Swift闭包和Objective-C中的Block很类似,是一段自包含的函数代码块,可以在代码中使用和...
- 本节知识点 闭包的基本概念 闭包基本使用 闭包表达式作为回调函数 闭包的多种写法(尾随闭包) 闭包表达式优化 闭包...
- https://github.com/codlife/SparkDeepDoc/blob/master/Spark...