javascript之閉包,遞歸,深拷貝
阿新 • • 發佈:2018-04-05
好處 宋體 get nat style javascrip div span ces
閉包
理解: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 inchina){ 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之閉包,遞歸,深拷貝