zoukankan      html  css  js  c++  java
  • jquery深度克隆javascript对象

    利用jquery 的extend方法:
    extend([param1,]obj1,obj2); 
    说明:1.>将对象obj2复制到obj1中

          2>param1,为布尔类型,true 表示深度复制 
    eg:
    1.  var object1 = {
    2. apple: 0,
    3. banana: {weight: 52, price: 100},
    4. cherry: 97
    5.    };
    6.     var object2 = {
    7. banana: {price: 200},
    8. durian: 100
    9.    };
    10.     $.extend(true,object1, object2);//深度复制,要复制以个新对象,可将object1写成{}
    11.     object2.banana.price=100;//修改值
    12. alert(object1.banana.price)//深度复制,object1中的值没有改变

    javascript 实现:

    1.     function cloneObject(obj) {
    2. var clone = {};
    3.        for(var i in obj) {
    4.  if(typeof(obj[i])=="object")
    5.   clone[i] = cloneObject(obj[i]);      
    6.  else
    7. clone[i] = obj[i];
    8.   }
    9.   return clone;   
    10. }
    eg:
      1.     function cloneObject(obj) {
      2. var clone = {};
      3.        for(var i in obj) {
      4.  if(typeof(obj[i])=="object")
      5.     var object1 = {
      6. apple: 0,
      7. banana: {weight: 52, price: 100},
      8. cherry: 97  
      9.  };
      10.     var  obj= cloneObject(object1 );
      11. object2.banana.price=200;//修改值
      12.     alert( obj.banana.price )//仍然输出100
  • 相关阅读:
    LeetCode(62)Unique Paths
    4_蒙特卡罗算法求圆周率PI
    CentOS安装sctp协议
    3_寻找假币问题(分治法)
    Gdb调试命令
    高阶函数 -------JavaScript
    方法 -------JavaScript
    函数定义和调用 -------JavaScript
    iterable -------JavaScript
    Map和Set -----JavaScript
  • 原文地址:https://www.cnblogs.com/douglasvegas/p/4774408.html
Copyright © 2011-2022 走看看