闭包
理解:a函数执行后return出b函数且b函数可以访问a函数的数据
好处:子函数存储在复函数内部,子函数执行完不会被自动销毁
坏处:占用内存比较大
ex:
function bibao(){ var i=10; return function(){ 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)