javascript之闭包,递归,深拷贝

Posted 小白都能看懂的指南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript之闭包,递归,深拷贝相关的知识,希望对你有一定的参考价值。

闭包

理解: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之闭包,递归,深拷贝的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript递归简单实现个对象深拷贝

JavaScript的一个深拷贝的例子——递归函数的实现

Day_4——JavaScript复制数据的几种级别-递归实现深拷贝-数组常用的方法

JS

JavaScript中的深拷贝

JavaScript浅拷贝与深拷贝