<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>原型</title>
<script>
//闭包:能够读取其它函数内部变量的函数
//JS 中每一个函数都是一个个体,子元素可以获取父元素中的信息,但是父元素不能直接获取子元素中的信息。
//关键是否引用了外部变量。
window.onload = function(){
//方法一
function a(){
var n = 0;
function add(){
n++;
console.log(n);
};
add();
};
a();
//2
function a1(){
this.n=0;
this.add=function(){
this.n++;
console.log(this.n);
};
};
var a11 = new a1();
a11.add();
//3
function a2(){
var n=0;
this.add=function(){
n++;
console.log(n);
};
};
var a22 = new a2();
a22.add();
//4
function a3(){
var n=0;
function add(){
n++;
console.log(n);
};
return add;
};
a3()();
//5
var a4 = (function a44(){
var n=0;
function add(){
n++;
console.log(n);
};
return add;
})();//立即执行函数
a4();
//闭包传参
function f(x){
var i = 0;
return function(){
return x[i++];
}
};
var abc = f(['a','b','c']);
f();
var f=( function (x){
var i = 0;
return function(){
return x[i++];
}
}(['a','b','c']));
f();
//递归 在函数运行过程中调用自己
function f(n){
if(n<=1){
return 1;
}else{
return n*f(n-1);
}
};
f(3);
$(function(){
//倒计时
//方法一:setInterval
var num = 10;
setInterval(function(){
if(num>0){
num--;
}else{
//......
}
},1000);
//方法二:递归
function f(num){
if(num>0){
setTimeout(function(){
num--;
f(num);
},1000);
}else{
}
}
});
}
</script>
</head>
<body>
</body>
</html>
前端学习---闭包、递归
猜你喜欢
转载自blog.csdn.net/zhujiarunm/article/details/81989170
今日推荐
周排行