匿名函数与闭包
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>閉包.html</title>
<style>
</style>
<script src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
//閉包:函數(shù)里的匿名函數(shù)
//普通函數(shù)
/*function add(){
return 123;
}
alert(add());
//把匿名函數(shù)賦值給變量,因?yàn)樗且粭l語句,所以要加分號(hào)
var box=function(){
return "lee";
};
alert(box);
//通過自我執(zhí)行來執(zhí)行匿名函數(shù)
(function(a){
alert(a);
})("a");
//使用全局變量進(jìn)行累加
var age=100; //全局變量駐留在內(nèi)存中,所以可以進(jìn)行累加
function box(){
age++;
}
alert(age); 100
box();
alert(age); 101
box();
alert(age); 102
function box(){
var age=100; //使用局部變量無法進(jìn)行累加,因?yàn)槊繄?zhí)行一次,局部變量就被銷毀,再執(zhí)行的時(shí)候就會(huì)初始化
age++;
return age;
}
alert(box()); 101
alert(box()); 101
alert(box()); 101
//使用匿名函數(shù),實(shí)現(xiàn)局部變量駐留在內(nèi)存中,從而實(shí)現(xiàn)累加
function box(){
var age=100;
var le=function(){
age++
return age;
}
return le;
}
var b=box(); //box只執(zhí)行一次
alert(b()); //后面調(diào)用的都是匿名函數(shù)
alert(b());
alert(b());
b=null;//解除引用,等待垃圾回收
//循環(huán)里的匿名函數(shù)的取值
function box(){
var arr=[];
for(var i=0;i<5;i++){
arr[i]=function(){
return i;
}
}
return arr;
}
var b=box(); //循環(huán)已經(jīng)完畢了,i最終是4++=5;所以最終就是5
for(var i=0;i<5;i++){
alert(b[i]());
}
alert(b);
function box(){
var arr=[];
for(var i=0;i<5;i++){
arr[i]=function(a){
return a;
}(i) //通過自我及時(shí)執(zhí)行匿名函數(shù)
}
return arr;
}
var b=box();
for(var i=0;i<5;i++){
alert(b[i]); ---0 1 2 3 4
}*/
function box(){
var arr=[];
for(var i=0;i<5;i++){
arr[i]=function(a){
return a;
}(i)
}
return arr;
}
var b=box();
for(var i=0;i<5;i++){
alert(b[i]); ---0 1 2 3 4
}
//閉包是運(yùn)行在全局中,所以閉包里的this也是指向全局。
</script>
</head>
<body>
</body>
</html>
?
轉(zhuǎn)載于:https://www.cnblogs.com/annie211/p/6051807.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
- 上一篇: 梦到开车被抢劫什么预兆
- 下一篇: 字符函数