递归


概念:一种化归思想,将一个问题转换为已解决的问题来实现;函数自己直接或间接的调用自己,要有跳出结构

求n的m次幂

function power(n,m){
if(m==1)return n;
return n*power(n,m-1);
}

斐波那契数列 1,1,2,3,5,8,13,21,54...
带有缓存功能的函数
沙箱模式:一个自调用函数,代码写到函数中执行,不会与外界有任何影响
var f=(function(){
var data=[1,1];
return function fn(n){
var v=data[n];
if(v===undefined){
v=fn(n-1)+fn(n-2);
data[n]=v;
}
return v;
}
})()

实现深拷贝

function copy(o){
var temp={};
for(var k in o){
if(typeof o[k]=='object'){
temp[k]=copy(o[k]);
}else{
temp[k]=o[k];
}
}
return temp;
}

用递归实现getElementsByClassName

function byClass(node,className,list){
var arr=node.childNodes;
for(var i=0;i<arr.length;i++){
if(arr[i].className==className){
list.push(arr[i]);
}
if(arr[i].childNodes.length>0){
byClass(arr[i],className,list)
}
}

}
posted @ 2016-08-07 21:39  贵欢lucky  阅读(267)  评论(0编辑  收藏  举报