欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript基于遍歷操作實現(xiàn)對象深拷貝功能示例

 更新時間:2019年03月05日 10:33:07   作者:白楊-M  
這篇文章主要介紹了JavaScript基于遍歷操作實現(xiàn)對象深拷貝功能,涉及javascript元素遍歷與屬性操作相關實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了JavaScript基于遍歷操作實現(xiàn)對象深拷貝功能。分享給大家供大家參考,具體如下:

function getType(o){
  var _t;
  return ((_t = typeof(o)) == "object" ? o==null && "null" || Object.prototype.toString.call(o).slice(8,-1):_t).toLowerCase();
}
function extend(destination,source){
  for(var p in source){
    if(getType(source[p])=="array"||getType(source[p])=="object"){
      destination[p]=getType(source[p])=="array"?[]:{};
      arguments.callee(destination[p],source[p]);
    }else{
      destination[p]=source[p];
    }
  }
}
var test={
  a:"ss",
  b:"dd",
  c:[
    {d:"css",e:"cdd"},
    {
      m:"ff",
      n:[
        {kk:"11",jj:"22"},
        {ll:"44"}
      ]
    }
  ]
};
var test1={};
extend(test1,test);
console.log(test);
console.log(test1);
test1.c[1].n[0].kk="change"; //改變test1的c屬性對象的d屬性
console.log(test);
console.log(test1);
console.log(test.c[1].n[0]);
console.log(test1.c[1].n[0]);

測試結果

從測試結果可以看到,通過使用這個遍歷的方法,成功將對象test深拷貝復制一份,得到test1。并且更改test1對象的屬性,并不會對test對象產(chǎn)生影響。

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

最新評論