1. 程式人生 > >javascript之閉包,遞歸,深拷貝

javascript之閉包,遞歸,深拷貝

好處 宋體 get nat style javascrip div span ces

閉包

理解:a函數執行後returnb函數且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)

javascript之閉包,遞歸,深拷貝