javascript之闭包,递归,深拷贝
闭包
理解:a函数执行后return出b函数且b函数可以访问a函数的数据
好处:子函数存储在复函数内部,子函数执行完不会被自动销毁
坏处:占用内存比较大
ex:
function bibao(){var i=10;returnfunction(){ console.log(i);
return i++; }
}
var bibao_task=bibao();bibao_task();
bibao_task();
bibao_task();
递归
理解:子元素有子元素,子元素的子元素有子元素.....
深拷贝和浅拷贝
理解:人的克隆和影子的区别,内存地址的区别
深拷贝:
Json函数
Target=JSON.parse(JSON.stringify(obj))
Jq的$.extend
$.extend(true,target,obj)//参数为true为深拷贝,否则为浅拷贝
递归深拷贝
var china = { nation :
'中国', birthplaces:{
name:
'chen' }
}
//深复制,要想达到深复制就需要用递归var newc={};
function copy(china,newc){
for(i in china){
if(typeof china[i]==='object'){
newc[i]=china[i];
copy(china[i],newc[i])
}else{
newc[i]=china[i]
}
}
}
copy(china,newc);
console.log(newc)
以上是 javascript之闭包,递归,深拷贝 的全部内容, 来源链接: utcz.com/z/509437.html