码迷,mamicode.com
首页 > 编程语言 > 详细

javascript之闭包,递归,深拷贝

时间:2018-04-05 20:07:05      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:深拷贝   地址   拷贝   i++   中国   ...   ring   javascrip   else   

闭包

理解: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之闭包,递归,深拷贝

标签:深拷贝   地址   拷贝   i++   中国   ...   ring   javascrip   else   

原文地址:https://www.cnblogs.com/wdxue/p/8723945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!