javascript之闭包,递归,深拷贝

笑着哭i 提交于 2021-02-18 14:23:26

闭包

理解: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)

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!