js闭包
闭包例子
var color = "blue";
function changeColor(){
var anotherColor = "red";
function swapColors(){
var tempColor = anotherColor;
anotherColor = color;
color = tempColor;
//在 swapColors函数里面可以访问tempColor,anotherColor和color
}
//在这里可以访问anotherColor和color,但不能访问tempColor
swapColors();
}
function f1(){
var n=999; //私有变量
//在函数f1内定义另外的函数作为f1的方法函数
function f2(){
alert(n); //引用外层函数f1的临时变量n
}
return f2; //返回内部函数
}
//调用函数
var result=f1();
result(); // 999
function foo() {
var a = 1;
function geta() {
a++;
return a;
}
return geta
}
myfunc = foo()
myfunc() // return 2
myfunc() //return 3
实际应用中会遇到闭包的情况
<ul>
<li><a href="#">第0个链接</a></li>
<li><a href="#">第1个链接</a></li>
<li><a href="#">第2个链接</a></li>
<li><a href="#">第3个链接</a></li>
</ul>
var as = document.getElementsByTagName("a");
for(var i=0;i<as.length;i++){
as[i].onclick = function(){
alert("你现在单击的是第" + i + "个链接");
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。